我正在查看以下网站:https://data.gov.sg/dataset/bunker-sales-monthly?resource_id=44da3191-6c57-4d4a-8268-8e2c418d4b43,他们有以下使用API提取数据的示例:
import requests
result = []
headers = {'User-Agent': 'Mozilla/5.0'}
url = "https://data.gov.sg/api/action/datastore_search?resource_id=44da3191-6c57-4d4a-8268-8e2c418d4b43"
r = requests.get(url, headers=headers)
data = r.json()
print(data)这将产生以下内容,其中我只想从输出中提取“记录”位,并将其转换为更具可读性的格式。理想情况下,我希望将这些数据放在熊猫数据框架中:
{“记录”:[{“船用燃料油”:“船用燃料油”、“燃料舱_销售”:“135.4”、“_id”:1、“月份”:“1995-01”}、{“燃料类型”:“船用柴油”、“船用柴油销售”:“67.9”、“_id”:2、“月份”:“1995-01”}、{“班克_类型”:“海上燃料油180”,“燃料油销售”:“412.9”、“_id”:3、“月份”:“1995-01”}、{“燃料舱类型”:“船用燃料油380 cst”、“船用燃料油销售”:“820.3”、“id”:4、“月份”:“1995-01”}、{“燃料舱类型”:“海上燃料油500 cst+”、“燃料舱销售”:“0”、“_id”:5、“月”:“1995-01”}.
格式如下:
df= pd.DataFrame(columns=['month', 'bunker_type', 'bunker_sales'])我怎么才能提取这些数据呢?
发布于 2021-12-16 15:26:20
试试pd.json_normalize
df = pd.json_normalize(data['result'], 'records')
print(df)
# Output:
bunker_type bunker_sales _id month
0 Marine Gas Oil 135.4 1 1995-01
1 Marine Diesel Oil 67.9 2 1995-01
2 Marine Fuel Oil 180 cst 412.9 3 1995-01
3 Marine Fuel Oil 380 cst 820.3 4 1995-01
4 Marine Fuel Oil 500 cst + 0 5 1995-01
.. ... ... ... ...
95 Ultra Low-Sulfur Fuel Oil 0 95 1995-08
96 Others 102.2 96 1995-08
97 Marine Gas Oil 101.7 97 1995-09
98 Marine Diesel Oil 63 98 1995-09
99 Marine Fuel Oil 180 cst 395 99 1995-09
[100 rows x 4 columns]https://stackoverflow.com/questions/70381327
复制相似问题