如何存储多个 python 字典或循环合并 return?
How to store multiple python dictionaries or merge in a loop and return?
我正在尝试获取两个页面的分页结果,但 return 正在退出循环并且仅显示一个页面的一个结果。
有没有办法存储或合并它们?
def incidents():
m = True
limit = 50
offset = 0
while m == True:
url = f"{URL}/incidents"
params = {
"statuses[]": "resolved",
"include[]" : 'channel',
"limit" : limit,
"offset" : offset,
"total" : "true",
}
r = requests.get(url, headers=headers, params=params)
data = r.json()
offset += 50
print(offset, (r.text))
more = False # Set deliberately for easier understanding
return data
offset, (r.text)
输出看起来像 -
50 {"incidents":[{"incident_number":1,"title":"crit server is on fire" ....
100 {"incidents":[{"incident_number":54,"title":"ghdg","description":"ghdg",....
Return 只在下面显示,另一个不显示。应该有一种方法,例如使用生成器?所以我们可以将它们合并并存储在数据变量中,这样数据就可以 returned?
100 {"incidents":[{"incident_number":54,....
我相信您可以将结果存储在您自己的列表中:
incidents = []
然后
data = r.json()
for element in data['incidents']:
incidents.append(element)
为清晰起见进行了编辑 - 这样您就可以将所有事件收集到一个对象中。
我不确定,因为你刚刚给出了 r.text 的开头(结果中是否有超过 'incidents'?),但我希望之前的答案有点短;我建议
results = []
(之前)和最后
data = r.json()
results += data['incidents']
return results
(顺便说一句:在你原来的 post 中,每个 运行 通过 while 只是设置 var“数据”,所以难怪 return 只能处理最后一部分检索到。但我想这只是你简化的产物,比如“more=False”甚至会阻止获得第二页)
我正在尝试获取两个页面的分页结果,但 return 正在退出循环并且仅显示一个页面的一个结果。
有没有办法存储或合并它们?
def incidents():
m = True
limit = 50
offset = 0
while m == True:
url = f"{URL}/incidents"
params = {
"statuses[]": "resolved",
"include[]" : 'channel',
"limit" : limit,
"offset" : offset,
"total" : "true",
}
r = requests.get(url, headers=headers, params=params)
data = r.json()
offset += 50
print(offset, (r.text))
more = False # Set deliberately for easier understanding
return data
offset, (r.text)
输出看起来像 -
50 {"incidents":[{"incident_number":1,"title":"crit server is on fire" ....
100 {"incidents":[{"incident_number":54,"title":"ghdg","description":"ghdg",....
Return 只在下面显示,另一个不显示。应该有一种方法,例如使用生成器?所以我们可以将它们合并并存储在数据变量中,这样数据就可以 returned?
100 {"incidents":[{"incident_number":54,....
我相信您可以将结果存储在您自己的列表中:
incidents = []
然后
data = r.json()
for element in data['incidents']:
incidents.append(element)
为清晰起见进行了编辑 - 这样您就可以将所有事件收集到一个对象中。
我不确定,因为你刚刚给出了 r.text 的开头(结果中是否有超过 'incidents'?),但我希望之前的答案有点短;我建议
results = []
(之前)和最后
data = r.json()
results += data['incidents']
return results
(顺便说一句:在你原来的 post 中,每个 运行 通过 while 只是设置 var“数据”,所以难怪 return 只能处理最后一部分检索到。但我想这只是你简化的产物,比如“more=False”甚至会阻止获得第二页)