You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套JSON转Pandas DataFrame时提取analysis字段内day_text列报错如何解决

解决方法

问题原因

你遇到的报错通常是因为analysis字段的结构和venue_info不同:要么部分行的analysis是空值,要么analysis是列表嵌套字典的结构,而非直接的字典结构,所以直接转DataFrame后找不到对应列。


方案1:使用str.get直接提取(适配字典类型的analysis)

如果analysis每个值都是和venue_info一样的单字典结构,用该方法可以自动兼容空值,不会报错:

# 直接将day_text作为新列加入原DataFrame,空值会自动填充为NaN
df_json['day_text'] = df_json['analysis'].str.get('day_text')

方案2:适配列表嵌套字典的analysis结构

如果analysis是[{"day_int": 1, "day_text": "周一"}]这种列表包裹单个字典的结构,先取列表第一个元素再提取即可:

df_json['day_text'] = df_json['analysis'].str[0].str.get('day_text')

通用解决方案:用json_normalize自动展开所有嵌套字段

如果后续还要提取其他嵌套字段,建议读取JSON时直接用pd.json_normalize展开所有层级,避免手动拆字段出错:

# 读取JSON后统一展开所有嵌套结构
raw_data = pd.read_json("C:/Users/IT City/Desktop/Hantz/TripAdvisor-Sanfrancisco/BestTimeData/TripAdvisor-Delivery/1-50-TripAdvisor-Delivery-Final-File.json")
df_json = pd.json_normalize(raw_data.to_dict('records'))

# 嵌套字段会自动生成为「父字段.子字段」格式的列名,直接取用即可
print(df_json['analysis.day_text'])

内容的提问来源于stack exchange,提问作者Arslan Ahmad Zaheer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:54:03