python - 使用循环将dict插入数据框
问题描述
使用 for 循环从 API 获取数据,但只显示最后一行。如果我print
用 statement 而不是d=
,我会出于某种原因得到所有记录。如何填充Dataframe
所有值?
我尝试使用 for 循环和附加但不断得到错误的结果
for x in elements:
url = "https://my/api/v2/item/" + str(x[number"]) + "/"
get_data = requests.get(url)
get_data_json = get_data.json()
d = {'id': [x["enumber"]],
'name': [x["value1"]["name"]],
'adress': [value2["adress"]],
'stats': [get_data_json["stats"][5]["rating"]]
}
df = pd.DataFrame(data=d)
df.head()
结果:
id name order adress rating
只有最后一行显示,可能是因为它会覆盖直到最后一个元素。我应该在某处放置另一个 for 循环,还是有一些我看不到的明显解决方案?
解决方案
将所有数据放入字典列表中,然后在最后转换为数据框
在代码的顶部写:
all_data = []
然后在你的循环中,在 d = {...} 之后,写
all_data.append(d)
最后在最后(循环结束后)
df = pd.DataFrame(all_data)