我正在使用Python“请求”包从API中获取数据。该API以json格式返回数据,我相信Python会将其视为字典。我正在使用API的offset参数来提取不同的结果,因此在下面的示例中使用了for offset in range(0, 300, 100):
代码。
我应该得到300个结果,并将它们另存为X
的字典。然后,我尝试使用dict.update(x)
附加/更新dict
,以便获得包含所有300个结果的字典。但是,我一直以只有100个结果的字典结尾。我认为使用.update
出了点问题。
dict = {} #Initialize dict as an empty dictionary
for offset in range(0, 300, 100):
r = requests.get(url, headers=headers, params={'offset':str(offset)})
x = r.json()
dict.update(x)
关于我正在做的错误或更好的方法的任何建议吗?
答案 0 :(得分:1)
这样编写自己的字典更新:
new_dict = {}
def own_update(dict):
for key,val in dict.iteritems():
if key in new_dict:
new_dict[key] = new_dict[key].append(val)
else:
new_dict[key] = [value]
new_dict
将根据需要进行更新。
答案 1 :(得分:1)
您可以使用defaultdict
In [1]: from collections import defaultdict
In [2]: results = [{'a': 1, 'b': 2}, {'a': 2, 'b': 4, 'c': 5}]
In [3]: d=defaultdict(list)
In [4]: for result in results:
...: for k, v in result.items():
...: d[k].append(v)
In [5]: print(d)
defaultdict(<class 'list'>, {'a': [1, 2], 'b': [2, 4], 'c': [5]})