我可以通过以下链接访问公共API数据。
import json,urllib
import csv
data = urllib.urlopen("https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-10-01&endtime=2016-10-02").read()
output = json.loads(data)
print (output)
需要帮助将获取的数据放入csv文件中。 With following属性应该是csv文件中的列:
•纬度(提示:处理,坐标属性中的第一个条目为Lat)
•经度(提示:处理,坐标属性中的第二个条目为经度)
•标题:这应该包括地震描述
•地点:地震的位置
•Mag:地震的大小
然后转换为Pandas数据帧
答案 0 :(得分:0)
您可以使用pd.read_csv()
直接执行此操作,并在HTTP请求中请求CSV数据:
import pandas as pd
url_csv = 'https://earthquake.usgs.gov/fdsnws/event/1/query?format=csv&starttime=2016-10-01&endtime=2016-10-02'
df = pd.read_csv(url_csv, usecols=['latitude', 'longitude', 'place', 'mag'])
请注意,我已通过设置format=csv
更改了以CSV格式请求数据的网址,pd.read_csv()
接受了数据的网址。 usecols
选择要保留的列。
CSV文件不包含title
列,但该列似乎由幅度和位置列组成,因此,尽管您可能希望避免添加重复数据,但可以将其构造并附加到数据帧如下:
df['title'] = 'M ' + df['mag'].map(str) + ' - ' + df['place']
还有一个pd.read_json()
Pandas功能,但是我无法轻松实现它。如果你能搞清楚,那么你应该能够提取所需的数据,而无需手动编写标题栏。