如何存储多个 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”甚至会阻止获得第二页)