问题描述
我正在尝试使用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 (将#修改为@)