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

如何将API返回的逗号分隔字符串转换为Pandas DataFrame?

问题解析:将API返回的CSV格式响应直接转为Pandas DataFrame

我正尝试解析某API的响应,该API接收批量手机号,返回其状态(如活跃与否)信息。响应内容如下:

# API调用
s.get('https://api/data/stuff')
# 响应内容
',MSISDN,Status,Error Code,Error Text,Original Network,Current Network,Current Country,Roaming Country,Type,Date Checked\n447541255456,447541255456,Undelivered,27,Absent Subscriber,O2 (UK),,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n447856999555,447856999555,Undelivered,1,Dead,O2 (UK),,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n447854111222,447854111222,Undelivered,1,Dead,Orange,,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n'

我能识别出MSISDN、Status等为表头,其余为数据行,但无法将其转换为DataFrame这类易读结构。尝试过import io和pd.read_table等方法但未成功,考虑先存为TXT再读取为CSV,想了解是否有更简便的原生Pandas方法?


解决方案:直接用Pandas的read_csv处理API响应

完全不用绕弯存成TXT文件,Pandas原生就能一步搞定这个问题,核心是处理响应开头的多余逗号,以及正确把字符串包装成可读取的数据源。

关键问题排查

你之前尝试失败,大概率是两个原因:一是响应开头多了个逗号,导致表头错位;二是read_table默认用制表符分隔,而你的数据是逗号分隔的,自然识别不对。

完整代码示例

直接上可运行的代码,一步到位转成DataFrame:

import pandas as pd
import io

# 假设api_response是你从API获取的响应文本
api_response = ',MSISDN,Status,Error Code,Error Text,Original Network,Current Network,Current Country,Roaming Country,Type,Date Checked\n447541255456,447541255456,Undelivered,27,Absent Subscriber,O2 (UK),,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n447856999555,447856999555,Undelivered,1,Dead,O2 (UK),,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n447854111222,447854111222,Undelivered,1,Dead,Orange,,,,Mobile,Wed Oct 9 2019 12:26:51 GMT+0000 (UTC)\n'

# 先去掉开头的多余逗号,避免表头错位
cleaned_response = api_response.lstrip(',')

# 用io.StringIO把字符串包装成Pandas能读取的"文件对象",再用read_csv解析
df = pd.read_csv(io.StringIO(cleaned_response))

# 验证结果
print(df.head())

额外优化:直接从API响应对象读取

如果是用requests库调用API,还能跳过手动存储响应文本的步骤,直接从响应对象读取:

import pandas as pd
import io
import requests

# 调用API获取响应
response = requests.get('https://api/data/stuff')
# 清理开头逗号并解析
cleaned_response = response.text.lstrip(',')
df = pd.read_csv(io.StringIO(cleaned_response))

这样就完全不需要中间文件,直接把API响应转换成结构化的DataFrame了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:11:40