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

如何提取API返回的PX格式响应内容中的DATA字段数据

解决方法

报错原因

  • 你在请求参数中指定了"response": {"format": "px"},接口返回的是PX格式纯文本,并非JSON结构,因此调用response.json()会解析失败
  • requests库返回的response是响应对象,不是字典类型,不能直接用[]按下标取值,因此response["Data"]会抛出类型错误

提取方案

方案1:直接解析返回的PX文本(无需修改请求)

直接对response.text做字符串处理即可提取DATA部分的数值,代码示例如下:

# 方法1:字符串分割(简单快速)
content = response.text
# 按DATA=拆分取后半段,再按结尾的;拆分取前半段
data_part = content.split("DATA=")[1].split(";")[0]
# 去除空白后按空格拆分,转为浮点型列表
data_list = [float(num) for num in data_part.strip().split()]
print(data_list)
# 输出结果:[-0.25, -0.25, -0.25, 0.0]

如果想要兼容性更强,避免格式波动影响提取,可以用正则匹配:

import re
# 方法2:正则匹配(稳定性更高)
match_result = re.search(r'DATA=\s*(.*?)\s*;', response.text, re.S)
if match_result:
    data_part = match_result.group(1)
    data_list = [float(num) for num in data_part.split()]
    print(data_list)

方案2:修改请求参数直接返回JSON(更规范)

不需要手动解析文本,直接把请求中的返回格式改为JSON即可,修改querystring里的response配置:

querystring = {
  # 其余配置保持不变
  "response": {
    "format": "json" # 把px改成json
  }
}

修改后再发起请求,就可以直接用response.json()解析返回结果,按字典的规则提取对应字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:03