Python с pandas и json: как читать вложенное поле - PullRequest
0 голосов
/ 21 апреля 2020

Здравствуйте, у меня возникла эта проблема с pandas, где я не могу получить доступ к полю "имя" в этом вложенном json поле. Сам json это что-то вроде

 {x:value,y:value,z:value,user:{name:value, id:value ecc...} }

код такой:

iteratore=pandas.read_json("C:/path/twitter_dataset_0.json",lines=True, chunksize=100)
for x in iteratore:
    print(x.user.get("name"))

это выводит меня "none", если я печатаю только x.user, это возвращает мне все поля, если i go для x.user.name ide выдает ошибку, если i go с items or values возвращает память, в которой хранятся данные. PS мне нужно использовать chunksize, потому что это 3.x ГБ файла.

Может ли кто-нибудь помочь мне получить доступ к указанному полю c?

Редактировать, моя проблема всегда одна и та же

это мой новый код

for x in iteratore:
z = x.to_dict() # json_normalize needs a dict, but x is a panda.dataframe, so i needed to convert it in a dict and then pass to json_normaliz
y = pandas.json_normalize(z)
print(y.get("user"))

но это моя новая ошибка, и я не знаю, как это исправить, мой поиск в гугле был бесполезен.

Traceback (most recent call last):
  File "C:/Users/Utente/PycharmProjects/tesiTwitter/test.py", line 7, in <module>
    y=pandas.json_normalize(z)
  File "C:\Users\Utente\PycharmProjects\tesiTwitter\venv\lib\site-packages\pandas\io\json\_normalize.py", line 282, in _json_normalize
    data = nested_to_record(data, sep=sep, max_level=max_level)
  File "C:\Users\Utente\PycharmProjects\tesiTwitter\venv\lib\site-packages\pandas\io\json\_normalize.py", line 106, in nested_to_record
    new_d.update(nested_to_record(v, newkey, sep, level + 1, max_level))
  File "C:\Users\Utente\PycharmProjects\tesiTwitter\venv\lib\site-packages\pandas\io\json\_normalize.py", line 101, in nested_to_record
    v = new_d.pop(k)
KeyError: '0'
...