Python 缺少密钥时使用json_normalize函数
我遇到了一个关于Python 缺少密钥时使用json_normalize函数,python,pandas,dataframe,json-normalize,Python,Pandas,Dataframe,Json Normalize,我遇到了一个关于json\u normalize函数的问题。指定项可能缺少的键时,会抛出一个键错误。如您所见,listpeomen并不总是存在于文件中 df={'Links':[{'id':1,'Gender':'X'}, {'id':2,'Gender':'Y','listPeople':[{'Person':'John','Age':42}] ] } test=json\u normalize(df,record\u path=“listPeople”,errors=“ignore”) 打
json\u normalize
函数的问题。指定项可能缺少的键时,会抛出一个键错误。如您所见,listpeomen
并不总是存在于文件中
df={'Links':[{'id':1,'Gender':'X'},
{'id':2,'Gender':'Y','listPeople':[{'Person':'John','Age':42}]
]
}
test=json\u normalize(df,record\u path=“listPeople”,errors=“ignore”)
打印(测试)
根据,使用errors=“ignore”
应该可以做到这一点,但这似乎不起作用
预期产出:
Person Age
NULL NULL
John 42
errors=“ignore”
适用于缺少的dict键,但您缺少一个可能包含多个dict的列表,并且您希望将其作为记录路径传递。您可以用空值填充缺少的列表人员
:
[i.update({'listPeople':[{'Person':None,'Age':None}]}) for i in df['Links'] if 'listPeople' not in i.keys()]
test = pd.json_normalize(df['Links'], record_path=['listPeople'], meta=['id','Gender'], errors = "ignore")
结果:
人
年龄
身份证件
性别
0
没有一个
楠
1.
X
1.
约翰
42
2.
Y
errors=“ignore”
适用于缺少的dict键,但您缺少一个可能包含多个dict的列表,并且您希望将其作为记录路径传递。您可以用空值填充缺少的列表人员
:
[i.update({'listPeople':[{'Person':None,'Age':None}]}) for i in df['Links'] if 'listPeople' not in i.keys()]
test = pd.json_normalize(df['Links'], record_path=['listPeople'], meta=['id','Gender'], errors = "ignore")
结果:
人
年龄
身份证件
性别
0
没有一个
楠
1.
X
1.
约翰
42
2.
Y