试图将数据从网站导入熊猫

时间:2019-10-02 09:34:44

标签: arrays json python-3.x pandas

我正在尝试将数据从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

1 个答案:

答案 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响应。

仅供参考,将所有导入内容放在代码的开头也是一种好习惯。

相关问题