Извлечение данных из вложенных массивов json в python

#python #json #pandas

#python #json #pandas

Вопрос:

У меня возникли проблемы с извлечением данных из вложенного json в python. Я хочу создать фрейм данных pandas с одним столбцом из всех значений «bill», например

 bill
----
a1
a2
a3
  

Используя выходные данные из API, отформатированного следующим образом:

 {
  "status": "succeeded",
  "travels": [
    {
      "jobs": [
        {
          "bill": "a1"
        },
        {
          "bill": "a2"
        },
        {
          "bill": "a3"
        }
      ],
      "vehicle": {
        "plate": "xyz123"
      }
    }
  ]
}
  

Загрузка json непосредственно в pandas дает мне только первый экземпляр ‘bill’. Я пробовал json_normalize () для ‘jobs’, но у него ключевая ошибка. Кто-нибудь может помочь мне разобраться, как получить только «счет»?

Спасибо

Ответ №1:

Я думаю, вы были на правильном пути с json_normalize . С вашим вводом в виде словаря python d :

 from pandas.io.json import json_normalize
json_normalize(d, record_path=['travels', 'jobs'])
  bill
0   a1
1   a2
2   a3
  

Комментарии:

1. Спасибо! Это сделало свое дело. Я не знал, что вам не нужно указывать ‘data’ в json_normalize

2. Рад помочь! Да, json_normalize иногда бывает сложно заставить работать.