我有一个复杂的JSON数据。我想将此JSON直接转换为pandas数据框。
必需的JSON有23条记录。 我只粘贴2条记录。
{"total":1,"page":1,"records":23,"rows":
[{"indexdailywaterlevel":0,
"indexcount":1,
"stationid":347,
"stationcode":"P.17",
"basinname":"ปิง",
"amphurname":"บรรพตพิสัย",
"provincename":"นครสวรรค์",
"braelevel_qmax":"39.80|2990.00",
"waterlevelvalueQ7":"35.14|248.00|8.2943143812709||",
"waterlevelvalueQ6":"35.17|259.00|8.66220735785953||",
"waterlevelvalueQ5":"35.27|293.00|9.79933110367893||",
"waterlevelvalueQ4":"35.19|266.00|8.89632107023411||",
"waterlevelvalueQ3":"35.14|248.00|8.2943143812709||",
"waterlevelvalueQ2":"35.02|207.00|6.92307692307692||",
"waterlevelvalueQ1":"35.05|217.00|7.25752508361204||",
"weekaverage":"35.14|248.29|8.30387004300048||",
"capacitypercent":7.25752508361204,
"wlstatus":null},
{"indexdailywaterlevel":0,
"indexcount":2,
"stationid":345,
"stationcode":"N.67",
"basinname":"น่าน",
"amphurname":"ชุมแสง",
"provincename":"นครสวรรค์",
"braelevel_qmax":"28.30|1579.00",
"waterlevelvalueQ7":"20.14|215.00|13.6162127929069||",
"waterlevelvalueQ6":"20.10|210.00|13.299556681444||",
"waterlevelvalueQ5":"20.00|202.00|12.7929069031032||",
"waterlevelvalueQ4":"20.00|202.00|12.7929069031032||",
"waterlevelvalueQ3":"19.98|200.00|12.6662444585181||",
"waterlevelvalueQ2":"19.95|198.00|12.5395820139329||",
"waterlevelvalueQ1":"19.95|198.00|12.5395820139329||",
"weekaverage":"20.02|203.57|12.8924273952773||",
"capacitypercent":12.539582013932868,
"wlstatus":null}]}
记录从“ indexdailywaterlevel”:0开始,到“ wlstatus”:null结束。
我尝试过 pd.read_json(data.json) 它的输出为
page 1 ,records 23{'provincename': 'นครสวรรค์',
'waterlevelvalueQ6':
'35.17|259.00|8.66220735785953||', 'wlstatus': None,
'waterlevelvalueQ1': '35.05|217.00|7.25752508361204||', 'indexcount':
1, 'waterlevelvalueQ4': '35.19|266.00|8.89632107023411||',
'basinname': 'ปิง', 'waterlevelvalueQ3':
'35.14|248.00|8.2943143812709||', 'indexdailywaterlevel': 0,
'stationcode': 'P.17', 'waterlevelvalueQ5':
'35.27|293.00|9.79933110367893||', 'weekaverage':
'35.14|248.29|8.30387004300048||', 'waterlevelvalueQ7':
'35.14|248.00|8.2943143812709||', 'braelevel_qmax': '39.80|2990.00',
'capacitypercent': 7.25752508361204, 'amphurname': 'บรรพตพà¸
´à¸ªà¸±à¸¢', 'waterlevelvalueQ2': '35.02|207.00|6.92307692307692||',
'stationid': 347},total 1
所有列都在第3列中。如何将其分开 列?
答案 0 :(得分:1)
我假设您想要的数据在行列中。您可以使用:
pandas.io.json.json_normalize(df["rows"])
这将产生:
amphurname basinname braelevel_qmax capacitypercent ...
?????????? ??? 39.80|2990.00 7.257525
?????? ???? 28.30|1579.00 12.539582
...