У меня есть вложенный json, и я хотел бы преобразовать его в pandas фрейм данных с помощью функции json_normalize.
JSON
json_input = [{'measurements': [{'value': 111, 'timestamp': 1},
{'value': 222, 'timestamp': 2}],
'sensor': {'name': 'testsensor',
'id': 1}},
{'measurements': [{'value': 333, 'timestamp': 1},
{'value': 444, 'timestamp': 2}],
'sensor': None},
]
Нормализация
df = pd.json_normalize(json_input, record_path=['measurements'],
meta=['sensor'])
Метаданные не нормализуются в выводе приведенного выше кода:
| | value | timestamp | sensor |
|---|-------|-----------|---------------------------------|
| 0 | 111 | 1 | {'name': 'testsensor', 'id': 1} |
| 1 | 222 | 2 | {'name': 'testsensor', 'id': 1} |
| 2 | 111 | 1 | None |
| 3 | 222 | 2 | None |
Есть ли возможность получить желаемый результат:
| | value | timestamp | sensor.name | sensor.id |
|---|-------|-----------|--------------|-----------|
| 0 | 111 | 1 | 'testsensor' | 1 |
| 1 | 222 | 2 | 'testsensor' | 1 |
| 2 | 111 | 1 | None | None |
| 3 | 222 | 2 | None | None |