我试图把星球大战API中的所有人都拉到一个有效的json文件中。在
API限制了结果集和所有的“people”跨9个分离调用(即“https://swapi.co/api/people/?page=1”、“https://swapi.co/api/people/?page=2”等)。在
当我循环处理多个请求时,最后得到的是无效的json,因为文档之间没有逗号分隔符,现在开始和结束的括号。在
请帮我解决电话里我做错了什么。在
import requests
import json
for x in range(1,9):
response = requests.get("https://swapi.co/api/people/?page="+str(x))
data = response.json()
next_page = data["next"]
results = data["results"]
for result in results:
with open('data.json', 'a') as outfile:
json.dump(result, outfile)
print('Done!')
json文件输出:
^{pr2}$
我希望这能解决您缺少逗号的问题
我刚刚将'result'变量转换为字符串,并将其附加到每个页面。当单个页面的字典结束时,它会将其附加到文件'数据.json'. 在
将结果保存到内存中,然后只执行一个操作
json.dump
即可解决问题:不要边做边序列化,而是将数据追加到一个列表中,并在到达末尾时将其序列化一次。在
相关问题 更多 >
编程相关推荐