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

如何规范化Pandas DataFrame中字典列表形式的复杂JSON数据

报错原因

你之前使用ast.literal_eval报错的核心原因是:df['completionDetails']列的元素本身就是Python原生的「字典组成的列表」结构,不是字符串格式的序列化内容,不需要做字符串转字面量的解析操作。

实现步骤

直接逐行遍历列内的事件列表,把嵌套的字段拍平成单层级键值对,再转换为DataFrame即可,代码如下:

import pandas as pd

def extract_event_fields(event_list):
    flat_record = {}
    for event in event_list:
        event_type = event["name"]
        # 匹配预期输出的字段命名规则
        flat_record[f"{event_type}_time"] = event["time"]
        if "location" in event:
            flat_record[f"{event_type}_location"] = event["location"]
    return flat_record

# 逐行解析后生成目标表
target_df = pd.DataFrame(df["completionDetails"].apply(extract_event_fields).tolist())

如果你的列实际存储的是JSON格式字符串(打印值外层带引号),先执行一步格式转换再走上面的解析逻辑即可:

import json
df["completionDetails"] = df["completionDetails"].apply(json.loads)
输出效果

执行后得到的target_df和你预期的格式完全一致:

start_time   arrival_time          arrival_location  departure_time        departure_location
0  1654098788177  1654099038368  [-74.2713929, 40.5017297]   1654098843357  [-74.2802414, 40.5095964]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 00:57:26