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

如何将Python请求响应对象中的TSV文本数据加载到DataFrame

问题根源

  1. 接口返回的是text/tsv格式的制表符分隔文本,本身不属于JSON结构,无需尝试转JSON,直接按TSV格式处理即可
  2. 原有代码存在两处核心用法错误:
    • 遍历空DataFramefor row in table实际是遍历列名,根本不会读取你解析好的TSV数据
    • 已被弃用的DataFrame.append()方法仅支持传入Series或DataFrame对象,直接传入csv.reader迭代器必然会触发类型错误

修复后代码

你完全不需要手动处理CSV解析,pandas内置方法可以一步完成TSV到DataFrame的转换,代码简化后如下:

import requests
import datetime
import pandas as pd
import sys
from requests.auth import HTTPBasicAuth
from curlParameters import *

def calculate_year():
    current_year = datetime.datetime.now().year
    return str(current_year)

def file_name():
    name = "CallDetail"
    year = calculate_year()
    file_type = ".csv"
    return name + year + file_type

try:
    response = requests.get(url, params=parameters, auth=HTTPBasicAuth(username, password))
    response.raise_for_status() # 直接抛出请求异常,不需要单独判断status_code
except Exception as e:
    print("Error:" + str(e))
    sys.exit()

# 一步把TSV响应转成DataFrame
columns = [
    'contact_id',
    'master_contact_id',  
    'Contact_Code',
    'media_name',
    'contact_name',
    'ani_dialnum',
    'skill_no',
    'skill_name', 
    'campaign_no', 
    'campaign_name', 
    'agent_no', 
    'agent_name', 
    'team_no', 
    'team_name', 
    'disposition_code',    
    'sla', 
    'start_date', 
    'start_time', 
    'PreQueue', 
    'InQueue', 
    'Agent_Time', 
    'PostQueue', 
    'Total_Time', 
    'Abandon_Time', 
    'Routing_Time', 
    'abandon', 
    'callback_time', 
    'Logged', 
    'Hold_Time'
]
# 如果接口返回的TSV本身带表头,去掉names参数即可
df = pd.read_csv(
    response.text,
    sep='\t',
    names=columns,
    header=0 if response.text.splitlines()[0].startswith('contact_id') else None # 自动判断是否有自带表头
)

# 导出CSV,不需要用petl,pandas自带导出功能
save_path = local_source + file_name()
df.to_csv(save_path, encoding='utf-8', index=False)

# 如果你一定要用petl导出,替换成下面的代码即可
# import petl
# petl.tocsv(table=df, source=save_path, encoding='utf-8', write_header=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:24:04