在JSON对象上使用pandas.json_normalize添加元字段时的KeyError和ValueError

问题描述

我正在尝试使用json_normalize将JSON对象转换为熊猫数据框。

我希望能够在自动化过程中重用此功能,因此,我希望能够添加JSON对象中存在的所有字段,即使它仅包含一个空列表。 / p>

JSON结构类似于下面的j示例。

但是,当我尝试从“作业”字典中添加元素时,我收到一个KeyError,该值并不总是存在,这使我感到困惑,因为我试图将该值作为元字段添加到所有输出中行。当我使用errors ='ignore'覆盖它时,输出解析为'nan'。

当我尝试添加一个空列表字段作为Meta列时,它将产生ValueError。当我未指定record_path时,这种情况不会发生(在这种情况下,“ parameters”字段显示结果数据框中的空列表)。

有没有办法解决这两个问题?

import pandas as pd

j = {
    "animal": "goose","name": "bill","parameters": [],"job": {"first": "cook","second": "uberdriver"},"likes":
        [
            {"sports": {"baseball": "yes","football": "no"},"food":
                [
                    {"eat": "jelly","drink": "milk"},{"eat": "cheese","drink": "soda"
                     }
                ]
            }
        ]
    }

# This works,and also shows the "parameters" field as an empty list
df = pd.json_normalize(j)

# This works,and uses the record_path I want
df = pd.json_normalize(j,["likes","food"],["animal","name","sports","baseball"],"football"]])

# This produces a KeyError
df = pd.json_normalize(j,["job","first"]])

# This produces a ValueError
df = pd.json_normalize(j,"parameters"])

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)