Список jsons для Pandas dataframe - PullRequest
0 голосов
/ 01 августа 2020

Я добавил несколько файлов JSON в список и экспортировал этот список как файл с именем «Merged_file. json». Теперь у меня возникли проблемы с преобразованием списка объектов JSON в кадр данных Pandas. Набор данных выглядит следующим образом:

[
  {
    "ids": {
        "parts": [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8"
        ]
    },
    "process": true,
    "indexes": [],
    "metadata": {
        "m_13": {
            "description": "This is a test",
            "confidence": {
                "state": "pre-added",
                "who": [
                    "user:George"
                ],
                "prob": 1
            }
        }
    }
  }
]

Как я могу извлечь объект «метаданные» и все различные значения, которые он содержит, во фрейм данных Pandas? Прежде чем я добавил результаты в списки, я мог просто извлечь столбцы с помощью json_normalize, и у меня был такой рабочий код. Может ли кто-нибудь помочь с этим конкретным примером c, или я должен добавить что-то еще, кроме списка?

EDIT: Ожидаемый результат:

Index    |Description     |State      |Who 
0         This is a test   pre-added   George
  • Итак, я хочу взять значения из разных вложенных объектов. Это только первые из «метаданных». Представьте себе такую ​​структуру еще для 12.

1 Ответ

0 голосов
/ 01 августа 2020

Используя json_normalize, вы можете сделать это:

with open('1.json', 'r+') as f:
    data = json.load(f)

df = pd.json_normalize(data, 
                       record_path=['metadata', 'm_13', 'confidence', 'who'],
                       meta=[['metadata', 'm_13', 'description'],
                            ['metadata', 'm_13', 'confidence', 'state'],
                            ['metadata', 'm_13', 'confidence', 'prob']])
print(df)

             0 metadata.m_13.description metadata.m_13.confidence.state metadata.m_13.confidence.prob
0  user:George            This is a test                      pre-added                             1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...