加载多个JSON文件

时间:2019-11-11 13:22:04

标签: python json

因此,我尝试使用Python HTTP请求加载多个JSON文件,但我想不出要核心地做到这一点。

使用python加载一个JSON文件非常简单:

response = requests.get(url)
te = response.content.decode()
da = json.loads(te[te.find("{"):te.rfind("}")+1]

但是如何加载多个JSON文件?

我有一个URL列表,我尝试通过循环请求每个URL,然后加载结果的每一行,但似乎不起作用。

这是我正在使用的代码:

t = []
for url in urls:  
    re = requests.get(url)
    te = req.content.decode()
    daten = json.loads(te[te.find("{"):te.rfind("}")+1])
    t.append(daten)

但是我收到此错误: JSONDecodeError:期望值:第1行第1列(字符0)。

我对JSOn很陌生,但我确实理解我无法逐行读取它,因为它破坏了JSON struture(?)。

那我该如何读取多个JSON文件?

编辑:发现错误。

某些链接的格式不正确。

2 个答案:

答案 0 :(得分:1)

使用请求库,如果您要请求的端点返回格式正确的json响应,则您需要做的就是在响应对象上调用.json()方法:

t = []
for url in urls:
    re = requests.get(url)
    t.append(re.json())

然后,如果要处理不良响应,请将上面的代码包装在try:...except块中

答案 1 :(得分:0)

假设您从任何站点收到正确的json,那么您没有构造结果json。 您可能会写类似

t = []
for url in urls:  
    t.append(requests.get(url).content.decode('utf-8'))
result = json.loads('{{"data": [{}]}}'.format(','.join(t)))
相关问题