Как сгладить многоуровневый/вложенный JSON?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сгладить многоуровневый/вложенный JSON?

Сообщение Anonymous »

Я пытаюсь преобразовать JSON в файл CSV, который можно использовать для дальнейшего анализа. Проблема с моей структурой заключается в том, что при конвертации файла JSON у меня довольно много вложенных диктовок/списков.
Я пытался использовать pandas json_normalize(), но сначала он выравнивается. уровень.
import json
import pandas as pd
from pandas.io.json import json_normalize
from cs import CloudStack

api_key = xxxx
secret = xxxx
endpoint = xxxx

cs = CloudStack(endpoint=endpoint,
key=api_key,
secret=secret)

virtual_machines = cs.virtMach()

test = json_normalize(virtual_machines["virtualmachine"])

test.to_csv("test.csv", sep="|", index=False)

Есть идеи, как сгладить весь файл JSON, чтобы я мог создать однострочный ввод в файл CSV для одной записи (в данном случае виртуальной машины)? Я попробовал несколько решений, опубликованных здесь, но мой результат всегда был сглаженным только на первом уровне.
Это пример JSON (в этом случае я все еще получаю «securitygroup» и «nic» вывод в формате JSON:
{
"count": 13,
"virtualmachine": [
{
"id": "1082e2ed-ff66-40b1-a41b-26061afd4a0b",
"name": "test-2",
"displayname": "test-2",
"securitygroup": [
{
"id": "9e649fbc-3e64-4395-9629-5e1215b34e58",
"name": "test",
"tags": []
}
],
"nic": [
{
"id": "79568b14-b377-4d4f-b024-87dc22492b8e",
"networkid": "05c0e278-7ab4-4a6d-aa9c-3158620b6471"
},
{
"id": "3d7f2818-1f19-46e7-aa98-956526c5b1ad",
"networkid": "b4648cfd-0795-43fc-9e50-6ee9ddefc5bd",
"traffictype": "Guest"
}
],
"hypervisor": "KVM",
"affinitygroup": [],
"isdynamicallyscalable": false
}
]
}


Подробнее здесь: https://stackoverflow.com/questions/513 ... ested-json
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»