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

解析列表中多份JSON并构建DataFrame时遇语法错误求助

解决JSON多字段解析构建DataFrame的语法错误问题

问题场景

你有存储在responselist变量中的4份JSON组成的列表,目标是解析这些数据并构建多列的DataFrame。单字段解析的代码可行,但添加第二个字段时出现语法错误,且数据收集方式不符合多列需求。

错误原因分析

你提供的错误代码存在两个核心问题:

  1. 语法错误:第一个data.extend()的生成器表达式未闭合括号,导致Python无法识别代码结构;
  2. 数据结构错误:两次调用data.extend()会将所有机场名先添加到列表,再添加所有时区,最终data的结构是[机场1, 机场2, ..., 时区1, 时区2, ...],这种一维列表无法直接转换为包含两列的DataFrame(数据长度与列数不匹配)。

正确解决方案

要构建多列DataFrame,需为每个航班数据收集包含多个字段的元素(元组或字典),确保每个元素对应DataFrame的一行。

方案1:逐行提取字段(可读性高)

import pandas as pd

# 初始化空列表存储每行数据
data = []

for response in responselist:
    # 遍历当前response中的所有航班数据
    for flight_data in response.get('data', []):
        # 提取departure节点的字段,默认空字典避免KeyError
        departure_info = flight_data.get('departure', {})
        dep_airport = departure_info.get('airport')
        dep_timezone = departure_info.get('timezone')
        
        # 可按需添加其他字段,比如航班基本信息
        flight_date = flight_data.get('flight_date')
        flight_status = flight_data.get('flight_status')
        
        # 将多个字段组成元组,添加到data列表
        data.append((dep_airport, dep_timezone, flight_date, flight_status))

# 定义列名
columns = ['departure_airport', 'departure_timezone', 'flight_date', 'flight_status']
# 转换为DataFrame
result_df = pd.DataFrame(data, columns=columns)

方案2:生成器表达式简化代码(简洁高效)

import pandas as pd

data = []
for response in responselist:
    # 用生成器表达式批量生成包含多字段的元组
    data.extend(
        (
            flight_data.get('departure', {}).get('airport'),
            flight_data.get('departure', {}).get('timezone'),
            flight_data.get('flight_date'),
            flight_data.get('flight_status')
        )
        for flight_data in response.get('data', [])
    )

columns = ['departure_airport', 'departure_timezone', 'flight_date', 'flight_status']
result_df = pd.DataFrame(data, columns=columns)

扩展说明

  • 如果需要解析嵌套更深的字段(比如arrival、airline节点),只需在元组中添加对应的提取逻辑即可;
  • 使用.get(key, default)而非直接索引[],可以避免字段缺失时抛出KeyError,提升代码健壮性。

内容的提问来源于stack exchange,提问作者user11278201

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:16:13