我正在尝试将数据从json网站导入到pandas数据框中,我可以下载数据,但不确定如何将其导出到pandas中。目前,我只是将一些信息添加到与网页上的最后一条记录相关的表中,以下是我正在使用的代码。将来,我想从网站上向数据框添加更多列和数据,但是目前,如果您可以帮助其中一列,我将尝试自己解决其余问题。任何帮助表示赞赏。
import requests
import json
headers = {'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
url = 'https://api.gbgb.org.uk/api/results/meeting/355352&?meeting=355352&'
response =requests.get(url,headers=headers)
data=json.loads(response.text)
def jprint(obj):
# create a formatted string of the Python JSON object
text = json.dumps(obj, sort_keys=True, indent=4)
#print(text)
jprint(response.json())
#print(response.json())
for d in data[0]['races']:
for dog in d['traps']:
print(dog['dogName'])
import pandas as pd
test_df = pd.DataFrame({'dogName': dog})
print(test_df.info())
test_df
答案 0 :(得分:0)
您需要根据狗名创建一个词典,并将每个词典附加到列表中。 然后,您可以从该列表中创建数据框。
dog_name_list = [] #You will add a dictionary with the column name and dog name to this list.
for d in data[0]['races']:
for dog in d['traps']:
dog_name = dog["dogName"]
dog_name_list.append({"dogName":dog_name})
test_df = pd.DataFrame(dog_name_list)
print(test_df.info())
print(test_df)
您的for循环只是遍历数据并打印狗的名字。因此,当您尝试使用变量dog创建数据帧时,它将返回数据“ Weight For Jay”中最后一条狗的json响应。
仅供参考,将所有导入内容放在代码的开头也是一种好习惯。