Использование функции json_normalize при отсутствии ключа
Я столкнулся с проблемой
json_normalize
функция. При указании ключа, который может отсутствовать для элемента, возникает ошибка ключа. Как вы видете,
listPeople
не всегда существует в файле.
df = {'Links':[{'id' : 1,'Gender' : 'X'},
{'id' : 2,'Gender' : 'Y','listPeople' : [{'Person':'John', 'Age' : 42}] }
]
}
test = json_normalize(df, record_path= "listPeople", errors = "ignore")
print(test)
Согласно документации , используя
errors = "ignore"
должно сработать, но, похоже, это не работает?
Ожидаемый результат:
Person Age
NULL NULL
John 42
1 ответ
errors = "ignore"
работает для отсутствующих ключей dict, но вам не хватает списка, который может содержать несколько dict, и который вы хотите передать как
record_path
. Вы могли восполнить недостающее
listPeople
с пустыми значениями:
[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")
Результат: