Как я могу сгладить вложенный JSON с помощью одинарных кавычек с Pandas? - PullRequest
0 голосов
/ 27 мая 2020

Мне нужно проанализировать метаданные отсюда: http://jmcauley.ucsd.edu/data/amazon/links.html

Однако файлы метаданных JSON здесь вложены и имеют одинарные кавычки, а не двойные кавычки. Поэтому я не могу использовать json_normalize для сглаживания этих данных в фрейм данных Pandas.

Пример:

{'A':'1', 'B':{'c':['1','2'], 'd':['3','4']}}

Мне нужно сгладить это в фрейм данных Pandas с объектами A B. c Bd С указанием, приведенным в ссылке, я использовал eval, чтобы получить A и B, но не смог получить B. c, Bd

Не могли бы вы предложить способ сделать это?

Ответы [ 3 ]

0 голосов
/ 27 мая 2020

Если ваша проблема заключается в загрузке этого текста в python dict, вы можете попробовать несколько вещей:

  1. заменить одинарные кавычки -> json.loads(data.replace("'",'"'))
  2. попробуйте прочитать его как python dict -> eval(data)
0 голосов
/ 27 мая 2020

A JSON не может содержать ключи или значения, заключенные в одинарные кавычки. Если у вас есть для синтаксического анализа строки с одинарными кавычками в качестве словаря, вы, вероятно, можете использовать

import ast
data = str({'A':'1', 'B':{'c':['1','2'], 'd':['3','4']}})
data_dict = ast.literal_eval(data)

from pandas.io.json import json_normalize
data_normalized = json_normalize(data)

{ ссылка }

0 голосов
/ 27 мая 2020

Это dict, а не JSON, если вы хотите преобразовать его в DataFrame, просто сделайте это:

d = {'A':'1', 'B':{'c':['1','2'], 'd':['3','4']}}
df = pd.DataFrame(d)

   A       B
c  1  [1, 2]
d  1  [3, 4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...