我正在寻找将这个 json 树分解为像
'IMPORTO_NOMINALE'
这样的元素
{
"AIUTO": [
{
"CAR": "16549",
"TITOLO_MISURA": "[Titolo II - capo 1, 2, 3, 4, 5, 6] Regolamento regionale della Puglia per gli aiuti in esenzione (Reg. regionale n. 17 del 30/09/2014-BURP 06/10/2014) - Aiuti a finalità regionale",
"DES_TIPO_MISURA": "Regime di aiuti",
"COD_CE_MISURA": "SA.60770",
"BASE_GIURIDICA_NAZIONALE": "Regolamento della Puglia per gli aiuti compatibili con il mercato interno ai sensi del TFUE ( Regolamento regionale della Puglia per gli aiuti in esenzione)",
"IDENTIFICATIVO_UFFICIO": "3230",
"SOGGETTO_CONCEDENTE": "Regione Puglia - Dipartimento Sviluppo Economico",
"COR": "16364774",
"TITOLO_PROGETTO": "SVILUPPO DI TECNOLOGIE SOFTWARE BASATE SU PROTOCOLLO D2D SU RETI UHS E 5G E ALGORITMI DI MACHINE LEARNING E NATURAL LANGUAGE PROCESSING",
"DESCRIZIONE_PROGETTO": "SVILUPPO DI TECNOLOGIE SOFTWARE BASATE SU PROTOCOLLO D2D SU RETI UHS E 5G E ALGORITMI DI MACHINE LEARNING E NATURAL LANGUAGE PROCESSING",
"LINK_TRASPARENZA_NAZIONALE": "http://www.regione.puglia.it/documents/10192/4782589/N139+suppl_06_10_14.pdf/407e8e4e-ccc7-457e-a69d-f2d5f4ac1365?version=1.0",
"DATA_CONCESSIONE": "2023-12-01+01:00",
"CUP": "n.d.",
"ATTO_CONCESSIONE": "1023",
"LINK_ATTO_CONCESSIONE": "http://www.sistema.puglia.it/portal/page/portal/SistemaPuglia/Determinazioni",
"DENOMINAZIONE_BENEFICIARIO": "EULOTECH S.R.L.",
"CODICE_FISCALE_BENEFICIARIO": "01292030770",
"DES_TIPO_BENEFICIARIO": "PMI",
"REGIONE_BENEFICIARIO": "Puglia",
"COMPONENTI_AIUTO": {
"COMPONENTE_AIUTO": {
"ID_COMPONENTE_AIUTO": "17824039",
"COD_PROCEDIMENTO": "3",
"DES_PROCEDIMENTO": "Esenzione",
"COD_REGOLAMENTO": "CE651/2014",
"DES_REGOLAMENTO": "Reg. CE 651/2014 esenzione generale per categoria (GBER) e ss.mm.ii",
"COD_OBIETTIVO": "500202",
"DES_OBIETTIVO": "Aiuti a finalità regionale — Aiuti agli investimenti (art. 14) — Regime",
"SETTORE_ATTIVITA": "J.62.0",
"STRUMENTI_AIUTO": {
"STRUMENTO_AIUTO": {
"COD_STRUMENTO": "2",
"DES_STRUMENTO": "Sovvenzione/Contributo in conto interessi",
"ELEMENTO_DI_AIUTO": "59175.00",
"IMPORTO_NOMINALE": "131500.00"
}
}
}
}
}
]
}
这个脚本非常合规,但仅爆炸每个第一个元素:
with open(filename, 'r',encoding='utf-8') as myfile:
data=myfile.read()
obj = json.loads(data)
df = pd.json_normalize(obj['AIUTO'])
我做错了什么?
我也尝试了两种解决方案:
import pandas as pd
from glom import glom
df = pd.read_json(filename)
prova = df['AIUTO'].apply(lambda row: glom(row, 'COMPONENTI_AIUTO'))
和
exploded_df = df.explode('AIUTO')
exploded_df
给定示例数据并且您要查找具有三列的行:
CODICE_FISCALE_BENEFICIARIO, ID_COMPONENTE_AIUTO, IMPORTO_NOMINALE
您可以重塑您的 json/字典,例如:
results = [
{
"CODICE_FISCALE_BENEFICIARIO": item["CODICE_FISCALE_BENEFICIARIO"],
"ID_COMPONENTE_AIUTO": item["COMPONENTI_AIUTO"]["COMPONENTE_AIUTO"]["ID_COMPONENTE_AIUTO"],
"IMPORTO_NOMINALE": item["COMPONENTI_AIUTO"]["COMPONENTE_AIUTO"]["STRUMENTI_AIUTO"]["STRUMENTO_AIUTO"]["IMPORTO_NOMINALE"]
}
for item in data["AIUTO"]
]
然后将其加载到 pandas 或任何你喜欢的东西中:
import pandas
print(pandas.DataFrame(results))
会给你:
CODICE_FISCALE_BENEFICIARIO ID_COMPONENTE_AIUTO IMPORTO_NOMINALE
0 01292030770 17824039 131500.00