Python:无法从json获取数据并转换为列表

时间:2017-03-06 03:35:59

标签: python json

我需要从json页面获取数据并将其转换为列表。

import json
import requests

j = requests.get('http://www.example.com/Portals/0/StaticData/data.js')
abc = json.loads(j.content)

但是,发生了错误

ValueError: No JSON object could be decoded

我需要的是

mylist = ['AALI','ABBA','ABDA'.......]
mylist1 = ['Astra Agro Lestari Tbk','Mahaka Media Tbk','Asuransi Bina Dana Arta Tbk',.......]

1 个答案:

答案 0 :(得分:2)

您没有返回有效的JSON,您可以在使用json模块阅读之前对其进行清理:

js = j.content.decode("utf-8").split("=")[-1].strip().strip(';')

json.loads(js)

#[{'code': 'AALI', 'name': 'Astra Agro Lestari Tbk'},
# {'code': 'ABBA', 'name': 'Mahaka Media Tbk'},
# {'code': 'ABDA', 'name': 'Asuransi Bina Dana Arta Tbk'},
# {'code': 'ABMM', 'name': 'ABM Investama Tbk'},
# {'code': 'ACES', 'name': 'Ace Hardware Indonesia Tbk'},
# ...

将结果解压缩到两个列表中:

mylist, mylist1 = zip(*((d['code'], d['name']) for d in json.loads(js)))