Что такое аргументы (адреса) «data» и «record_path» для выравнивания списка под списком с помощью pandas.io.json_normalize - PullRequest
1 голос
/ 21 мая 2019

Как мне ссылаться на элементы под списком с помощью json_normalize?

У меня все хорошо, списки списаны, но нет списка под списком, потому что json_normalize хочет, чтобы в качестве первого аргумента использовался dict, а имя вашего списка -второй.

Ближайший ответ, который я смог найти, был от (конечно) Мартина, здесь pandas.io.json.json_normalize с очень вложенным json

{ 
    'dict': {
        'someList': [
           {}
           {}
           {}
           {}
           {'subDictkey':
                'sublist':[]
           }
        ]
    }
 }

works = json_normalize(data['dict'], record_path = ['somelist'])

Как сгладить «подсписок» с помощью json_normalize?Можно ли это сделать?Предположительно можно использовать аргумент record_path.'someList' равен

easy = json_normalize(data['dict']), record_path = ['someList'] )

Я бы ожидал, что это будет что-то вроде:

MyNestedLists = json_normalize(data['dict'], record_path = ['someList','subDict', 'sublist'])

Я не могу ссылаться на json_normalize(data['subDictkey']) или даже json_normalize(data['dict']['subDictkey'])

1 Ответ

1 голос
/ 21 мая 2019

Если вы хотите прочитать список sublist, это хорошо работает:

import pandas as pd
import numpy as np
import json

js = """[{ 
    "dict": {
        "someList": [
           {"a":1},
           {"b":2},
           {"subDictkey": 
             {"sublist": 
               ["a","b","c"]
             }
           }
        ]
    }
 }]""";


with open('a.json','w') as fo:
  fo.write(js)

## read json file
with open('a.json') as fi:
    data = json.load(fi)

df = pd.io.json.json_normalize(data=data,meta=[['dict', 'somelist','subDictkey']])
df.values[0][0][2]['subDictkey']['sublist']

Gives:
['a', 'b', 'c']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...