pandas json\u normalize KeyE

2024-03-28 23:51:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个没有统一结构的嵌套json文件,如下面的示例:

[{ "name": "Jon", "last": "Jonny"}, 
 {"name": "Jimmy", "last": "johnson", "kids":[{"kidName":"johnson_junior","kidAge": "1"}, {"kidName":"johnson_junior2", "kidAge": "4"}]}]

在第二项中有一个列表名“kids”,而第一项中不存在。在

当我试图用pandas-json-normalize压缩json时,它会抛出错误消息:“KeyError:'kids'”

这是json_normalize命令:

^{pr2}$

似乎json_normalize不支持没有统一结构的嵌套json。在

有人经历过同样的问题吗?你知道怎么度过难关吗?在


Tags: 文件namejson示例结构kidslastjimmy
1条回答
网友
1楼 · 发布于 2024-03-28 23:51:04

如果不太麻烦,我会在不存在该键的情况下添加'kids':[{'kidName':None,'kidAge':None}]。在

errors='ignore'用于meta(请参见docu)中列出的键,而使用kids指定的是一个记录路径。在

我不知道你是不是像“如果记录路径键有时不可用怎么办?”,但是,如果您提供的数据示例是您当前的问题,那么我将建议您快速解决此问题。在

类似这样的方法有效:

data = {"name": "Jimmy", "last": "johnson", "kids":[{"kidName":"johnson_junior","kidAge": "1"}, {"kidName":"johnson_junior2", "kidAge": "4"}]}]

# then you inform with empty kids if looping doesn't alter your desired flow that much
[elem.update({'kids':[{'kidName':None,'kidAge':None}]}) for elem in data if 'kids' not in elem.keys()]

# finally you normalize
flat_json = json_normalize(data,'kids', ['name','last'])

输出:

^{pr2}$

相关问题 更多 >