Python Json_normalize提供逐字符的结果
我目前正试图用pandas规范化json文件,但在处理时遇到了一个问题 json文件如下所示:Python Json_normalize提供逐字符的结果,python,json,pandas,Python,Json,Pandas,我目前正试图用pandas规范化json文件,但在处理时遇到了一个问题 json文件如下所示: { "valid": false, "checks": {"bank_check": {"valid": true, "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"}, "company_check": {"valid": true, "reasons"
{ "valid": false,
"checks": {"bank_check": {"valid": true, "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"},
"company_check": {"valid": true, "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"},
"ceo_check": {"valid": true, "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"}}
我感兴趣的是在如下表格中获取支票列表:
| bank_check | company_check | ceo_check|
------------------------------------------
| true | true | true |
但当我使用json_normalize时,我得到了以下结果:
如果我使用works_data=json_normalized[1],record_path=['result','checks',],我得到的错误字符串索引必须是整数
以前有人面对过吗?或者你知道我为什么会得到这个奇怪的结果吗
提前感谢您的回复。不确定为什么会提出这个问题,请注意示例中的json缺少结尾}。但我自己尝试将其正常化,并能够产生您想要的输出:
from pandas.io.json import json_normalize
d = { "valid": 'false',
"checks": {"bank_check": {"valid": 'true', "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"},
"company_check": {"valid": 'true', "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"},
"ceo_check": {"valid": 'true', "reasons": {}, "last_checked_at": "2019-02-19", "first_checked_at": "2019-02-01"}}}
df = json_normalize(d['checks'])
cols = [ col for col in list(df.columns) if 'valid' in col ]
works_data = df[cols]
输出:
谢谢你,我终于发现我做错了什么。事实上,我不是在json上进行json_规范化,而是在一个带有json和索引0的小数据帧上进行json_规范化。所以我必须去掉索引才能让它工作。谢谢你的快速回复。哦,好的。是的,这是有道理的。对于d[1],record_path=['result','checks']是如何给您一些输出的,我有点困惑。但很高兴你解决了
print (works_data)
bank_check.valid ceo_check.valid company_check.valid
0 true true true