Python 多个GET请求,将json响应合并到一个数组或json对象中
我正在运行一个get请求,它以json格式返回一些数据,同时还为我提供下一页数据的下一个url。我运行了一个while循环来获取所有数据,但希望将每个新页面数据附加到现有对象。最后,我想要一个大的json对象或数组 这是到目前为止我的代码,我不认为append是正确的选择,因为它在数组中为每个页面创建索引。相反,我想要一个索引或一个json对象,将所有数据合并在一起Python 多个GET请求,将json响应合并到一个数组或json对象中,python,json,python-requests,Python,Json,Python Requests,我正在运行一个get请求,它以json格式返回一些数据,同时还为我提供下一页数据的下一个url。我运行了一个while循环来获取所有数据,但希望将每个新页面数据附加到现有对象。最后,我想要一个大的json对象或数组 这是到目前为止我的代码,我不认为append是正确的选择,因为它在数组中为每个页面创建索引。相反,我想要一个索引或一个json对象,将所有数据合并在一起 host = 'https://xxxxx.com/api/v1/users' headers = {'Accept': 'ap
host = 'https://xxxxx.com/api/v1/users'
headers = {'Accept': 'application/json', 'Content-Type': 'application/json',
'Authorization': 'xxxxx'}
response = requests.get('{}'.format(host),
headers = headers)
alist = []
keep_running = True
while keep_running:
json_response = response.json()
alist.append(json_response)
host = response.links['next']['url']
response = requests.get('{}'.format(host),
headers = headers)
keep_running = response.status_code == requests.codes.ok and 'next' in response.links.keys()
每页有200个对象,约18页。我得到一个长度为18的数组,每个索引中有200个对象。理想情况下,长度为18*200=3600的数组是我想要的
我可以使用pandas实现创建数据帧/表,但是,我也希望使用原始json。非常感谢您的任何想法或帮助。我不确定您的数据实际上是什么样子的。但是,您可以将json对象作为python对象加载。追加所有数据,然后将其转换回json字符串 像这样:
import json
...
alist = []
keep_running = True
while keep_running:
json_response = response.json()
alist.append(json.loads(json_response))
host = response.links['next']['url']
response = requests.get('{}'.format(host),
headers = headers)
keep_running = response.status_code == requests.codes.ok and 'next' in response.links.keys()
json_string = json.dumps(alist)
假设您的json_响应是一个列表,它看起来像是list.extend。因此,使用alist.extendjson_响应代替alist.appendjson_响应
追加-将项目添加到列表的末尾
extend-通过追加iterable中的所有项来扩展列表
例如:
x=[1,2]
x、 追加[3,4]给出[1,2,3,4]]
x、 扩展[3,4]给出[1,2,3,4]