【发布时间】:2021-04-14 04:42:53
【问题描述】:
我正在尝试在具有高度变化的嵌套 json 的数据文件上运行 pandas.json_normalize,其中记录的内容可能会有很大差异。
我正在处理一个房屋清单文件并试图提取价格。价格数据存储如下,'prices'在json文件中的第一个嵌套层:
"prices": [
{
"amountMax": 420000,
"amountMin": 420000,
"availability": "false",
"currency": "USD",
"dateSeen": [
"2020-12-21T11:57:17.190Z",
"2020-12-25T02:35:41.009Z"
],
"isSale": "false",
"isSold": "true",
"pricePerSquareFoot": 235,
"sourceURLs": [
"https://www.redfin.com/FL/Coconut-Creek/.../home/4146834"
]
}, # followed by additional entries
我正在使用以下代码行,如果我将输入文件编辑为包含“价格”部分的单个记录,则该代码行有效:
df3 = pd.json_normalize(df['records'], record_path='prices',
meta=['id'],
errors='ignore'
)
但是,完整文件包含许多不包含价格部分的记录。如果我对包含 2 条记录(一条有,一条没有)的文件运行代码,则会失败并显示 KeyError: 'prices'
显然 json_normalize 中的 'errors='ignore'' 不足以处理错误。
我能做什么?我只想完全跳过没有价格的记录。
【问题讨论】:
标签: json pandas nested normalize