[英]Python Converting Nested JSON with Array of Objects, and Objects to Excel
有人可以幫我將以下 JSON 文件轉換為 Excel 嗎?
Excel Output 格式
metaData.user report.from report.to lossInfo.locationName.Name lossInfo.locationName.locNbr lossInfo.locationDetails.locNm lossInfo.locationDetails.locAddress.locCity
測試用戶 12-12-2021 12-12-2022 test1 12 xyz abc
測試用戶 12-12-2021 12-12-2022 test2 121 xyz1 abc1
{
"metaData": {
"formName": "A1",
"user": "Test User"
},
"report": {
"from": "12/12/2021",
"to": "12/12/2022"
},
"lossInfo": [
{
"locationName": {
"name": "test1",
"locNbr": "12"
},
"locationDetails": {
"locNm": "xyz",
"locAddress": {
"locCity": "abc",
"locStateCd": "abcd"
},
"state": "ab",
"lossLocation": "cd"
}
},
{
"locationName": {
"name": "test11",
"locNbr": "121"
},
"locationDetails": {
"locNm": "xyz1",
"locAddress": {
"locCity": "abc1",
"locStateCd": "abcd1"
},
"state": "ab1",
"lossLocation": "cd1"
}
}
]
}
你給的json格式不對。 名為locationDetails的鍵前沒有逗號。 修復后可以使用json_normalize 。
df = pd.json_normalize(json_data,meta=['lossInfo']).explode('lossInfo').reset_index(drop=True)
df = df.join(pd.json_normalize(df.pop('lossInfo')))
'''
| | metaData.formName | metaData.user | report.from | report.to | locationName.name | locationName.locNbr | locationDetails.locNm | locationDetails.locAddress.locCity | locationDetails.locAddress.locStateCd | locationDetails.state | locationDetails.lossLocation |
|---:|:--------------------|:----------------|:--------------|:------------|:--------------------|----------------------:|:------------------------|:-------------------------------------|:----------------------------------------|:------------------------|:-------------------------------|
| 0 | A1 | Test User | 12/12/2021 | 12/12/2022 | test1 | 12 | xyz | abc | abcd | ab | cd |
| 1 | A1 | Test User | 12/12/2021 | 12/12/2022 | test11 | 121 | xyz1 | abc1 | abcd1 | ab1 | cd1 |
'''
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.