【发布时间】:2021-08-02 02:04:55
【问题描述】:
我通过 API 为不同的项目获取了非常嵌套的 json,然后我尝试将一些接收到的信息转换为数据帧。
到目前为止,我已经使用这条线来获得我想要的数据框:
df = pd.json_normalize(result, meta=['properties'], record_path=['view', 'item', 'fields', 'field'])
这有时有效,但有时我会得到元键或记录路径本身的 KeyError (KeyError: 'view')。我认为这是因为我收到的 json 并不总是完全相同,但会根据所请求信息的项目类型而有所不同。
我现在的问题是,是否有办法跳过没有这些键的数据?或者如果有其他选项可以忽略其中没有这些键的数据?
或者,有没有办法找出哪些项目的键不同并区别对待?由于我们谈论的是带有部分 800-1000 项的转储,其中包含长 json,我认为我实际上无法手动通过它们来找到不适合的转储...
非常感谢任何帮助!
【问题讨论】:
-
请花点时间阅读"How to create a Minimal, Complete, and Verifiable example" 和"How do I ask a good question?"。按照这些文章中的提示,您将获得更好的结果。
-
尝试缩短它,希望这会有所帮助。
-
查看 flatten_json 模块。比 json_normalize 宽容一点
标签: python json pandas dataframe normalize