Как нормализовать сложный JSON с несколькими уровнями вложенной информации в Python ⇐ Python
-
Anonymous
Как нормализовать сложный JSON с несколькими уровнями вложенной информации в Python
Я получаю данные в заранее определенном формате, который не могу изменить:
данные = { "идентификатор": 12345, "name": "Доу", "пол": { "textEn": "Мужской" }, "профессии": [ { "Описание работы": { "textEn": "Описание вакансии" }, "cetTitles": [ { "cetTitleType": { "textEn": "Распознавание" }, "issuanceDate": "1992-04-14T00:00:00Z", "телефонные номера": [ "123 221 00 70" ] } ] } ] } Хотя я могу нормализовать данные на один уровень ниже («пол») с помощью функции pd.json_normalize, мне сложно получить доступ к информации, расположенной ниже в иерархии.
Я пробовал, например. получить описание вакансии через data = pd.json_normalize(data,record_path=['professions','job_description'],meta='id') но я получаю TypeError. Как мне решить эту проблему и извлечь все данные в таблицу, чтобы приведенные выше данные были представлены в виде одной строки со всем содержимым в виде полей?
Результат, которого я хотел бы в конечном итоге достичь, выглядит следующим образом:
id имя пол job_description cetTitleType issuanceDate phoneNumbers 12345 Доу Мужской Описание вакансии Распознавание 1992-04-14T00:00:00Z 123 221 00 70
Я получаю данные в заранее определенном формате, который не могу изменить:
данные = { "идентификатор": 12345, "name": "Доу", "пол": { "textEn": "Мужской" }, "профессии": [ { "Описание работы": { "textEn": "Описание вакансии" }, "cetTitles": [ { "cetTitleType": { "textEn": "Распознавание" }, "issuanceDate": "1992-04-14T00:00:00Z", "телефонные номера": [ "123 221 00 70" ] } ] } ] } Хотя я могу нормализовать данные на один уровень ниже («пол») с помощью функции pd.json_normalize, мне сложно получить доступ к информации, расположенной ниже в иерархии.
Я пробовал, например. получить описание вакансии через data = pd.json_normalize(data,record_path=['professions','job_description'],meta='id') но я получаю TypeError. Как мне решить эту проблему и извлечь все данные в таблицу, чтобы приведенные выше данные были представлены в виде одной строки со всем содержимым в виде полей?
Результат, которого я хотел бы в конечном итоге достичь, выглядит следующим образом:
id имя пол job_description cetTitleType issuanceDate phoneNumbers 12345 Доу Мужской Описание вакансии Распознавание 1992-04-14T00:00:00Z 123 221 00 70