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

使用Pandas提取JSON中transportEvents时报错,求排查与解决方案

解决Pandas提取嵌套JSON中transportEvents字段的错误

问题根源

你的JSON结构中,transportEvents是嵌套在event对象下的二级字段,但原代码直接从顶层DataFrame中查找该字段,导致json_normalize无法定位到目标数据,触发错误。

修正方案

需要先提取出所有嵌套在event下的transportEvents列表,再进行归一化处理,以下是两种可行的实现方式:

方式一:使用JSON模块先提取目标数据

import pandas as pd
import json
from pandas import json_normalize

ruta_archivo_json = 'response_1660310720193.json'
# 读取并解析JSON文件
with open(ruta_archivo_json, 'r', encoding='utf-8') as f:
    raw_data = json.load(f)

# 遍历提取所有transportEvents条目
transport_events_list = []
for entry in raw_data:
    transport_events_list.extend(entry['event']['transportEvents'])

# 将列表归一化为DataFrame
df = json_normalize(transport_events_list)
print(df)
df.head(10)

方式二:使用Pandas链式操作处理嵌套字段

import pandas as pd

ruta_archivo_json = 'response_1660310720193.json'
# 读取JSON为DataFrame
df_raw = pd.read_json(ruta_archivo_json)
# 展开event字段、拆分transportEvents数组并转为结构化DataFrame
df = df_raw['event'].apply(pd.Series)['transportEvents'].explode().apply(pd.Series)
print(df)
df.head(10)

后续上传BigQuery

得到结构化DataFrame后,可直接使用Pandas的to_gbq方法上传(需提前完成BigQuery认证配置):

df.to_gbq(
    destination_table='your_project.your_dataset.your_table',
    project_id='your_project_id',
    if_exists='replace'  # 根据需求选择append/replace/fail
)

内容的提问来源于stack exchange,提问作者Diego Agustin Acevedo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:15:31