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

Posted

技术标签:

【中文标题】试图将数据从网站导入熊猫【英文标题】:trying to import data from a website into pandas 【发布时间】:2020-01-31 13:53:33 【问题描述】:

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

【问题讨论】:

就像df.to_csv('filename.csv') 一样简单,你也需要设置你的目录。 嗨,谢谢,但这并不能保存我想要的,正如我在原始问题中解释的那样,它保存的数据只是页面的最后一条记录,我需要保存列出的 40 只狗在上面代码中的for循环中 【参考方案1】:

您需要根据狗名创建一个字典,并将每个字典附加到一个列表中。 然后,您可以从该列表中创建数据框。

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 创建数据框时,它会返回数据“Jay 体重”中最后一条狗的 json 响应。

作为仅供参考,将所有导入内容放在代码开头也是一种很好的做法。

【讨论】:

您好 RamWill,非常感谢您的帮助和建议,非常感谢。

以上是关于试图将数据从网站导入熊猫的主要内容,如果未能解决你的问题,请参考以下文章

我可以从任何类型的网站导入图像吗?

如何从网络抓取创建熊猫数据框?

试图从熊猫数据框中获取小计

如何将一个网页中自己想要的数据导入到Excel表格中

如何将网站上所有抓取的数据保存在 pandas 数据框中?

直接从网页下载并导入文件到 R 环境