【发布时间】:2021-08-09 15:06:49
【问题描述】:
我正在尝试规范化从 GraphQL API 获取的 JSON,并使用 json_normalize 将其转换为数据帧 JSON
[{
"node": {
"organization": {
"company": "System"
},
"id": "15",
"ip": "10.6.11.110",
"name": "devce_name",
"deviceClass": {
"logicalName": "class OEM",
"class": "class",
"description": "OEM",
"deviceCategory": {
"name": "Unknown"
}
},
"asset": {
"location": "",
"make": "make"
},
"events": {
"edges": [
{
"node": {
"message": "Device message",
"severity": "3
}
},
{
"node": {
"message": "message",
"severity": "2",
}
}
]
}
}
},
...
]
这是我正在尝试使用 pandas 的 json_normalize
nd = pd.json_normalize(
res,
record_path=["node", "events", "edges"],
meta= [["node", "organization", "company"], ["node", "name"], ["node", "ip"], ["node", "id"], ["node", "deviceClass"]]
)
如果元内部大小为 2 则没有错误,
例如:- meta= [["node", "organization"], ["node", "name"], ["node", "ip"], ["node", "id" ], ["node", "deviceClass"]]
但是当我在列表中尝试超过 2 个时,我得到了以下错误。
例如:meta= [["node", "organization", "company"], ["node", "name"],["node", "id"], ["node", "deviceClass"]]
** 键错误:“公司” 上述异常是以下异常的直接原因: …… KeyError:“尝试使用错误运行='ignore',因为键'company'并不总是存在”**
如何在 meta 中添加 3 个以上的字段?
谢谢
【问题讨论】:
标签: python pandas json-normalize