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

如何将print_response函数的输出数据加载到pandas DataFrame中?

把print_response的输出转成Pandas DataFrame的最优方案

与其去捕获print_response函数的控制台输出(这种方式既麻烦又容易出错),不如直接从原始的response字典中提取结构化数据,直接构建DataFrame。毕竟print只是把数据转换成文本展示,我们完全可以跳过这一步,直接操作数据源。

具体实现步骤

  1. 提取列名:从response的columnHeader中获取维度(dimensions)和指标(metrics)的名称,组合成DataFrame的列名。
  2. 提取行数据:遍历每一行数据,把维度值和指标值组合成列表,收集所有行数据。
  3. 构建DataFrame:用收集到的行数据和列名创建DataFrame。

完整代码示例

import pandas as pd

def response_to_dataframe(response):
    # 用来存储所有行数据的列表
    row_collection = []
    
    for report in response.get('reports', []):
        # 提取维度列名
        dimension_cols = report.get('columnHeader', {}).get('dimensions', [])
        # 提取指标列名(从metricHeaderEntries中取name字段)
        metric_cols = [entry['name'] for entry in report.get('columnHeader', {}).get('metricHeader', {}).get('metricHeaderEntries', [])]
        # 合并所有列名,同时添加你提到的日期范围信息
        date_range = f"{report.get('dateRange', {}).get('startDate', '')} to {report.get('dateRange', {}).get('endDate', '')}"
        all_columns = ['Date Range'] + dimension_cols + metric_cols
        
        # 遍历每一行数据
        for row in report.get('data', {}).get('rows', []):
            # 获取维度值
            dim_values = row.get('dimensions', [])
            # 获取指标值(注意metrics是数组,通常第一个元素对应当前行的指标数据)
            metric_values = row.get('metrics', [{}])[0].get('values', [])
            # 组合成一行完整数据,包含日期范围、维度、指标
            full_row = [date_range] + dim_values + metric_values
            row_collection.append(full_row)
    
    # 生成DataFrame
    return pd.DataFrame(row_collection, columns=all_columns)

使用方法

假设你已经获取到了目标response数据,直接调用这个函数就能得到DataFrame:

# 替换成你的实际response对象
your_response = get_your_response_here()
df = response_to_dataframe(your_response)

# 查看结果
print(df)

为什么不直接捕获print输出?

  • 可靠性差:print的文本格式可能因为函数修改、换行/空格变化而改变,解析文本很容易出错。
  • 效率低:先把结构化数据转成文本,再把文本解析回结构化数据,完全是多余的步骤。
  • 灵活性差:直接操作原始数据可以轻松添加额外字段(比如日期范围),而解析print输出很难做到这一点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:07