首页 > 解决方案 > 加载多个 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: Expecting value: line 1 column 1 (char 0)。

我对 JSOn 很陌生,但我知道我不能用循环逐行读取它,因为它破坏了 JSON 结构(?)。

那么如何读取多个 JSON 文件呢?

编辑:发现错误。

某些链接的 JSON 格式不正确。

标签: pythonjson

解决方案


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

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

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


推荐阅读