我有一个像这样的嵌套json:
{
"Invalids":[
{
"Comments":"string",
"InputRequest":{
"LinesInfo":[
{
"LastPipeLineStateIds":[
0
],
"CropId":0
}
],
"Crop":"string",
"Year":"string"
}
},
{
"Comments":"string",
"InputRequest":{
"LinesInfo":[
{
"LastPipeLineStateIds":[
0
],
"CropId":0
}
],
"name":"string",
"number":"string"
}
}
],
"LinesResponse":{ },
"ErrorInfo":"string"
}
如果'Invalids'不为空,我想得到'name'和'number'的表格。我这样做:
a = json_normalize(data['Invalid'])
但是输出的前缀如下:'InputRequest.name',我不想要。如何获得一个干净的“名称和号码”列表(以“评论”作为元数据)?
您可以像这样管理它:
nested_json = {
"Invalids": [
...
]
}
def get_names_and_numbers(json_data):
"""
Return names and numbers in json_data.
"""
names_list = []
numbers_list= []
Invalids = nested_json['Invalids']
if Invalids: # *note that Invalids is a list an this referers to its lenght*
names_list.append(Invalids[1]['InputRequest']['name'])
numbers_list.append(Invalids[1]['InputRequest']['number'])
return names_list, numbers_list
else:
return None, None
names, numbers = get_names_and_numbers(nested_json)