[英]How to merge JSON in while loop
我有一个 while 循环,用于从 API 获取 JSON 响应。 这是我的代码。
import json
import requests
import pandas as pd
url = "https://org.zendesk.com/api/v2/tickets?sort_by=created_at"
payload = ""
headers = {
'Authorization': "Basic blablabla"
}
params="page[size]=3"
while url:
response = requests.request("GET", url, data=payload, headers=headers, params=params)
data = response.json()
#get only tickets array and drop everything else
dataTickets = json.dumps(data['tickets'],indent=2)
#print(dataTickets)
#get next page of data
url = data['links']['next']
每个循环都给了我以下内容。
[
{'url': 'https://org.zendesk.com/api/v2/tickets/4025.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4026.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4027.json'}
]
如何合并每个循环运行(在循环内)以获取合并数组,如下所示:
[
{'url': 'https://org.zendesk.com/api/v2/tickets/4025.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4026.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4027.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4028.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4029.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4030.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4031.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4032.json'},
{'url': 'https://org.zendesk.com/api/v2/tickets/4033.json'}
]
我想我明白了。 我的做法略有不同。
一个请求循环中的数据如下所示:
{
"tickets": [
{
"url": "https://org.zendesk.com/api/v2/tickets/3058.json"
},
{
"url": "https://org.zendesk.com/api/v2/tickets/3059.json"
}
],
"next_page": "https://org.zendesk.com/api/v2/tickets.json?page=2",
"previous_page": null,
"count": 3234
}
import json
import requests
import pandas as pd
url = "https://org.zendesk.com/api/v2/tickets?sort_by=created_at"
payload = ""
headers = {
'Authorization': "Basic blablabla"
}
params="page[size]=3"
while url:
response = requests.request("GET", url, data=payload, headers=headers, params=params)
data = response.json()
#merge (extend) tickets array for every loop
data["tickets"] += data["tickets"]
#get next page of data
url = data['links']['next']
# Format the merged JSON and take out just the tickets array
dataout = json.dumps(data["tickets"],indent=2)
# Write formatted JSON into file
with open('tickets1.json', 'w') as f:
f.write(dataout)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.