#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
Комментариев нет:
Отправить комментарий