我想更改JSON结构以生成预期的输出。
我不想用Python和Pandas实现它。
关于如何更改json格式的任何想法,
这样我就可以直接通过pd.read_json(JSON_STR)
获得输出。
由于
json_str='''{
"2013-03-20_change_in_real_gdp":{
"2013":{
"upper_end_of_central_tendency":"2.8",
"lower_end_of_range":"2.0"
},
"2014":{
"upper_end_of_central_tendency":"3.4",
"lower_end_of_range":"2.6"
}
},
"2012-04-25_change_in_real_gdp":{
"2013":{
"upper_end_of_central_tendency":"7.7",
"lower_end_of_range":"7.0"
},
"2014":{
"upper_end_of_central_tendency":"7.4",
"lower_end_of_range":"6.3"
}
}
}'''
pd.read_json(json_str)
答案 0 :(得分:0)
向后工作,您可以创建数据框,然后将其转换为JSON以查看预期的格式。当您尝试将其转换为JSON时,您将收到错误,因为度量索引值不是唯一的。重置索引后,您将获得以下JSON。
import json
df = pd.DataFrame({2013: [2.8, 2, 7.7, 7],
2014: [3.4, 2.6, 7.4, 6.3],
'source': ['2013-03-20_change_in_real_gdp',
'2013-03-20_change_in_real_gdp',
'2012-04-25_change_in_real_gdp',
'2012-04-25_change_in_real_gdp']},
index=['upper_end_of_central_tendency',
'lower_end_of_range',
'upper_end_of_central_tendency',
'lower_end_of_range'])
df.index.name = 'measure'
>>> df.reset_index().to_json()
'{"measure": {"0":"upper_end_of_central_tendency",
"1":"lower_end_of_range",
"2":"upper_end_of_central_tendency",
"3":"lower_end_of_range"},
"2013": {"0":2.8,"1":2.0,"2":7.7,"3":7.0},
"2014": {"0":3.4,"1":2.6,"2":7.4,"3":6.3},
"source": {"0":"2013-03-20_change_in_real_gdp",
"1":"2013-03-20_change_in_real_gdp",
"2":"2012-04-25_change_in_real_gdp",
"3":"2012-04-25_change_in_real_gdp"}}'"""