因此,我尝试使用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文件?
编辑:发现错误。
某些链接的格式不正确。
答案 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)))