使用pd.json_normalize展开DataFrame嵌套documents列报错如何解决?
Pandas嵌套JSON扁平化报错解决方案
报错原因
你当前使用pd.json_normalize时触发的错误,是因为meta参数中包含的regions、processingTechniques、applications三个字段本身为数组类型,pandas对元字段做类型推断时出现匹配冲突,导致报错。
解决方案
只需要在pd.json_normalize参数中新增errors='ignore'配置,忽略元字段的类型匹配校验即可,修改后代码如下:
gr2 = pd.json_normalize( result, record_path = ['documents'], meta = ['regions', 'name', 'description', 'grade_id', 'processingTechniques','summary', 'applications'], # 新增以下参数 errors = 'ignore' ) gr2['product_id'] = prod_id gr2.head()
如果需要将列表类型的关联字段转为更易使用的字符串格式,可以在后续补充转换逻辑:
# 将列表字段转为逗号分隔的字符串,可按需调整 gr2['regions'] = gr2['regions'].str.join(',') gr2['processingTechniques'] = gr2['processingTechniques'].str.join(',') gr2['applications'] = gr2['applications'].str.join(',')
以上代码执行后即可正常展开documents下的所有字段为独立列,同时保留所有指定的关联字段数据。
内容的提问来源于stack exchange,提问作者user10272343
相关产品推荐
相关产品推荐

