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

如何从API返回数据生成DataFrame并展开嵌套的results字典字段

实现方案

你可以通过两步实现:先处理results列字典中的列表类型值,再将字典展开为独立的DataFrame列,具体代码如下:

方法1:先处理字典再生成DataFrame

import pandas as pd

# 定义单条结果的处理逻辑
def process_result(d):
    res = {}
    for k, v in d.items():
        if isinstance(v, list):
            # 空列表替换为null
            if not v:
                res[k] = None
            # 单元素列表直接取元素值
            elif len(v) == 1:
                res[k] = v[0]
            # 多元素列表按需调整逻辑,默认保留原列表
            else:
                res[k] = v
        else:
            res[k] = v
    return res

# 处理results列并生成目标DataFrame
processed_list = df["results"].apply(process_result).tolist()
target_df = pd.DataFrame(processed_list)

方法2:先展开再批量处理列值

如果字典键较多,也可以先直接展开所有键为列,再统一处理列表值:

import pandas as pd

# 先把results列的字典直接展开为临时DataFrame
temp_df = pd.DataFrame(df["results"].tolist())

# 遍历所有列处理列表格式的值
for col in temp_df.columns:
    temp_df[col] = temp_df[col].map(
        lambda x: None if isinstance(x, list) and not x 
        else x[0] if isinstance(x, list) and len(x) == 1 
        else x
    )

target_df = temp_df

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:15:00