【发布时间】:2022-01-19 13:45:37
【问题描述】:
我有一个包含 3 列(INSTNR、Enhedsadresser、API_response)的数据框,其中第 3 列(API_response strong>) 包含 JSON 对象。我想展平 JSON 对象并将提取的信息存储在同一 df 中的单独列中。我对提取 categori、resultater -> adresse -> id 和 resultater -> adresse -> adgangsadresseid 信息特别感兴趣。
我试过了:
data = json_normalize(data=df['API_response'], record_path='resultater',
meta=['kategori'], errors='ignore')
但它只是返回 TypeError: string indices must be integers
而data = json_normalize(data=df['API_response']) 给了我一个包含索引列表的列...
如何提取所需信息?
JSON 对象示例:
{
"kategori": "A",
"resultater": [
{
"adresse": {
"id": "0a3f50bc-f815-32b8-e044-0003ba298018",
"vejnavn": "Staldgaardsgade",
"adresseringsvejnavn": "Staldgaardsgade",
"husnr": "39A",
"supplerendebynavn": null,
"postnr": "7100",
"postnrnavn": "Vejle",
"status": 1,
"virkningstart": "2009-11-24T02:15:25.000Z",
"virkningslut": null,
"adgangsadresseid": "0a3f5090-edef-32b8-e044-0003ba298018",
"etage": "st",
"dør": "th",
"href": "https://api.dataforsyningen.dk/adresser/0a3f50bc-f815-32b8-e044-0003ba298018"
},
"aktueladresse": {
"id": "0a3f50bc-f815-32b8-e044-0003ba298018",
"vejnavn": "Staldgaardsgade",
"adresseringsvejnavn": "Staldgaardsgade",
"husnr": "39A",
"supplerendebynavn": null,
"postnr": "7100",
"postnrnavn": "Vejle",
"status": 1,
"virkningstart": "2009-11-24T02:15:25.000Z",
"virkningslut": null,
"adgangsadresseid": "0a3f5090-edef-32b8-e044-0003ba298018",
"etage": "st",
"dør": "th",
"href": "https://api.dataforsyningen.dk/adresser/0a3f50bc-f815-32b8-e044-0003ba298018"
},
"vaskeresultat": {
"variant": {
"vejnavn": "Staldgaardsgade",
"husnr": "39A",
"etage": "st",
"dør": "th",
"supplerendebynavn": null,
"postnr": "7100",
"postnrnavn": "Vejle"
},
"afstand": 0,
"forskelle": {
"vejnavn": 0,
"husnr": 0,
"postnr": 0,
"postnrnavn": 0,
"etage": 0,
"dør": 0
},
"parsetadresse": {
"vejnavn": "Staldgaardsgade",
"husnr": "39A",
"etage": "st",
"dør": "th",
"postnr": "7100",
"postnrnavn": "Vejle"
},
"ukendtetokens": [],
"anvendtstormodtagerpostnummer": null
}
}
]
}
包含此 JSON 对象的 API 响应链接:https://api.dataforsyningen.dk/datavask/adresser?betegnelse=Staldgaardsgade%2039A%20st%20th,%207100%20Vejle
编辑 1
我使用数据和 python 脚本创建了 GitHub 存储库:https://github.com/mantasbacys/TREFOR
【问题讨论】:
-
你能提供一个可重现的例子吗? IE。你如何创建你的
df? -
这只是一个简单的
pd.read_excel。我附上了包含文件的 GitHub 存储库链接(帖子的最后一行)。
标签: python json pandas typeerror json-normalize