我正在努力处理来自国际货币基金组织的 JSON 格式的数据。在检查了一些帖子后,我不知道该怎么做。
我试过的
import requests
import pandas as pd
import json
# These are the variables I want to have as columns, plus setting a time index
var = ['NGDP_XDC', 'NCP_XDC', 'NCGG_XDC', 'NFI_XDC', 'NINV_XDC', 'NX_XDC',
'NM_XDC', 'NSDGDP_XDC', 'NGDP_R_K_IX', 'NGDP_D_IX']
# URL for the IMF JSON Restful Web Service,
# IFS database
base = 'http://dataservices.imf.org/REST/SDMX_JSON.svc/CompactData/IFS/'
period = 'A'
country = 'MX'
var = 'NGDP_XDC+NCP_XDC+NCGG_XDC+NFI_XDC+NINV_XDC+NX_XDC+NM_XDC+NSDGDP_XDC+NGDP_R_K_IX+NGDP_D_IX'
time = '?startPeriod=1970&endPeriod=2019'
# Get data from the above URL using the requests package
url = base + period + '.' + country + '.' + var + '.' + time
response = requests.get(url)
dictr = response.json()
...到目前为止一切顺利...但是,这是我正在努力的步骤
flat = dictr['CompactData']['DataSet']['Series']
temp = pd.json_normalize(flat)
temp = temp.drop(columns=['@FREQ', '@REF_AREA', '@UNIT_MULT', '@BASE_YEAR'])
我期待一个可以根据自己的意愿转动的平面文件。但是,这就是我得到的
@INDICATOR @TIME_FORMAT Obs
0 NINV_XDC P1Y [{'@TIME_PERIOD': '1970', '@OBS_VALUE': '37.21...
1 NX_XDC P1Y [{'@TIME_PERIOD': '1970', '@OBS_VALUE':
我不知道如何将其转换为
year variable1 ... variableN
1970 10 ... 45
1980 20 ... 12
.
.
.
2019 15 ... 10