我正在调用 API,它会将值作为 Json 对象返回给我,如下所示:
{
"indicator_value": {
"AFG": {
"137506": {
"2002": 0.373,
"2003": 0.383,
"2004": 0.398,
"2005": 0.408,
"2006": 0.417,
"2007": 0.429,
"2008": 0.437,
"2009": 0.453,
"2010": 0.463,
"2011": 0.471,
"2012": 0.482,
"2013": 0.487,
"2014": 0.491,
"2015": 0.493,
"2016": 0.494,
"2017": 0.498
}
},
"AGO": {
"137506": {
"1999": 0.374,
"2000": 0.387,
"2001": 0.401,
"2002": 0.418,
"2003": 0.429,
"2004": 0.442,
"2005": 0.455,
"2006": 0.471,
"2007": 0.492,
"2008": 0.502,
"2009": 0.522,
"2010": 0.52,
"2011": 0.534,
"2012": 0.543,
"2013": 0.554,
"2014": 0.564,
"2015": 0.572,
"2016": 0.577,
"2017": 0.581
}
},
文件继续这样,然后在indicator_value数组之后还有另外两个我不感兴趣的数组。
任何人都可以建议我如何使用 python 将其转换为以下格式的 csv 文件:
indicator | country | year | value
HDI | AFG | 2017 | 0.498
HDI | AFG | 2016 | 0.494
最佳答案
这可能会起作用,具体取决于其余数据的样子:
import pandas as pd
rows = []
for k1, v1 in data['indicator_value'].items():
row = ['HDI', k1]
for k2, v2 in v1.items():
for k3, v3 in v2.items():
rows.append(row + [k3, v3])
df = pd.DataFrame(rows, columns=['indicator', 'country', 'year', 'value'])
其中df
是pandas
DataFrame 和 df.head() 现在看起来像:
现在您可以执行df.to_csv(fname)
。
关于python - python 中的 Json 对象到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58238190/