程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”?

开发过程中遇到使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”的解决方法建议,希望对你解决使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”有所启发或帮助;

我正在尝试规范化从 GraphQL API 获取的 JsON 并使用 Json_normalize 将其转换为数据帧 JsON

@H_403_2@ [{ "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",} } ] } } },... ]

这是我正在尝试的使用熊猫的 Json_normalize

@H_403_2@nd = pd.Json_normalize( res,record_path=["node","events","edges"],Meta= [["node","organization","company"],["node","name"],"ip"],"ID"],"deviceClass"]] )

如果元内部大小为 2,则没有错误,

eg:- @H_383_13@meta= [["node","organization"],"ID" ],"deviceClass"]]

但是当我在列表中尝试超过 2 个时,我得到以下错误。

eg: @H_383_13@meta= [["node",“设备类”]]

** KeyError: '公司' 上述异常是以下异常的直接原因: .... KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”**

如何在元数据中添加超过 3 个字段?

谢谢

解决方法

几天前我遇到了同样的问题,您可以尝试不同的方法

nd1 = pd.json_normalize(js,record_path=["node","events","edges"],/
                         meta = [["node","id"]])

nd2 = pd.merge(nd1,pd.json_normalize(js),on='node.id',how='left')

大佬总结

以上是大佬教程为你收集整理的使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”全部内容,希望文章能够帮你解决使用 Pandas 进行嵌套 JSON 规范化,KeyError:“尝试使用 errors='ignore' 运行,因为键 'company' 并不总是存在”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。