Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Создать DataFrame из вложенного (nested) JSON

#python #json #pandas #dataframe


У меня есть некоторый JSON файл:

[{'id': 1,
   'info': {'somedata': 'spamegg',
            'moredata': 'spameggtoo'}},
  {'id': 2,
   'info': {'somedata': 'eggspam',
            'moredata': 'eggspmtoo'}}]


Обычным открытием файла и созданием экземпляра DataFrame из pandas я получаю колонки
id и info.

Мне нужно спарсить JSON так, чтобы вместо info была колонка со всем что внутри, не
пойму как это сделать.

Сейчас использую такой код:

import json
from pandas import DataFrame
path = 'somefile.json'
with open(path, encoding='utf8') as my_file:
    info = json.load(my_file)
frame = DataFrame(info)


Нужного результата я не получаю.
    


Ответы

Ответ 1



Воспользуйтесь pandas.io.json.json_normalize(): path = 'somefile.json' with open(path, encoding='utf8') as my_file: data = json.load(my_file) Вариант 1: In [131]: pd.io.json.json_normalize(data) Out[131]: id info.moredata info.somedata 0 1 spameggtoo spamegg 1 2 eggspmtoo eggspam Вариант 2: In [135]: pd.io.json.json_normalize(data, 'info', ['id']) Out[135]: 0 id 0 somedata 1 1 moredata 1 2 somedata 2 3 moredata 2

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

Отправить комментарий