Нормализовать вложенный JSON с помощью Python - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь проанализировать файл json, который содержит несколько вложенных столбцов, в фрейм данных.Исходный файл JSON доступен здесь: https://nvd.nist.gov/vuln/data-feeds#JSON_FEED

Я использую блокнот Jupyter с python и могу сгладить первый уровень вложенности, но не могу сгладить другие вложенные столбцы.

Вот мой код:

import pandas as pd
from pandas.io.json import json_normalize

df_cve2019 = pd.read_json('https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2019.json.zip', compression='zip')
df_cve2019.head(2)

Вывод

Затем я нормализую столбцы CVE_Items через

df_CVE_Items_2019 = json_normalize(df_cve2019['CVE_Items'])
df_CVE_Items_2019.head(2)

и яполучить следующий вывод: Нормализация вывода

Теперь я хотел бы сгладить столбцы, такие как «configurations.nodes» и «cve.references.reference_data», и создать отдельный фрейм данных для каждого из них.с cve.CVE_data_meta.ID в качестве индекса ключа.Например, для конфигураций я хочу, чтобы df выглядел примерно так:

cve.CVE_data_meta.ID     configurations.nodes.cpe_match.cpe23.uri    ....
CVE-2019-00001           "cpe: 1..."                                 ....
CVE-2019-00001           "cpe: 2..."                                 ....
...
CVE-2019-00002           "cpe: 1..."                                 ....
...                      ...                                         ....

Может кто-нибудь помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...