试图将数据从网站导入熊猫
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,非常感谢您的帮助和建议,非常感谢。以上是关于试图将数据从网站导入熊猫的主要内容,如果未能解决你的问题,请参考以下文章