如何在循环分页时附加多个字典 (API) - python 3.



我想遍历我通过API访问的几页数据,并在循环进行时将这些页面连接到同一字典。

到目前为止,我设法循环浏览了所有页面,并且可以随着循环的进行打印出来,所以当循环结束时,所有页面都被打印出来。

但我的字典只包含最后一页!

page = 5
i = 0
for i in range(0, page):
url =f'http://hotell.difi.no/api/json/npd/wellbore/withcoordinates?page={i+1}'
dataset_all = requests.get(url)
json_dataset_all = dataset_all.json()
json_dataset_all.update()
print(json_dataset_all)
i = i+1

我没有成功地完成循环并使用第 1 页、第 3 页、第 4 页和第 5 页更新我的字典第 5 页。

"打印"显示遍历页面的循环有效,但它不会在进行时将页面存储在字典中。它仅包含最新页面。

提前感谢您的帮助。

这些页面有一个相同的"键",称为"条目",它的值是字典列表。因此,当您更新字典时,它只会覆盖其值(字典列表(。

如果你想有一个包含所有词典的列表,你可以做这样的事情。然后,您也可以轻松地将其放入 Pandas 数据帧中。

import requests
import pandas as pd
page = 5
i = 0
all_data_list = []
for i in range(0, page):
url =f'http://hotell.difi.no/api/json/npd/wellbore/with-coordinates?page={i+1}'
dataset_all = requests.get(url)
dataset_all_json = dataset_all.json()
number_of_entries = len(dataset_all_json['entries'])
for x in range(0, number_of_entries):
all_data_list.append(dataset_all_json['entries'][x])
i = i+1
# Put all the results in a Pandas DataFrame
df = pd.DataFrame(all_data_list)
print(df)

(顺便说一下,您的 URL 缺少"with坐标"中的"-"(

最新更新