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

LiveCoinWatch的cURL请求转Python requests代码报400错误求助

问题排查与修复代码

错误点汇总

  • 基础语法错误:url的值、headers里的host值、x-api-key的取值都没有用引号包裹为字符串,会直接触发Python语法报错
  • 多余的错误请求头:原cURL请求没有携带host头,你额外添加的host头取值错误(host应该是纯域名api.livecoinwatch.com而非完整请求路径),错误的头信息会导致服务端校验不通过
  • 请求体序列化错误:你已经手动把data写为JSON字符串了,再调用json.dumps()会对字符串做二次序列化,最终提交的请求体格式完全不符合接口要求,是触发bad request的核心原因
  • 参数取值不匹配:原cURL请求的meta参数为false,你的代码里写为true,如果接口对参数取值有严格校验也可能导致报错

修复后的可运行代码

更推荐直接用Python字典传参,由requests自动处理序列化,避免手动写JSON出错:

import requests

# 替换为你的实际API密钥
YOUR_API_KEY = "替换为你申请的真实接口密钥"

headers = {
    'x-api-key': YOUR_API_KEY,
    'content-type': 'application/json'
}

url = "https://api.livecoinwatch.com/coins/list"
data = {
    "currency": "USD",
    "sort": "rank",
    "order": "ascending",
    "offset": 0,
    "limit": 50,
    "meta": False
}

# 直接用json参数传字典,不需要手动调用json.dumps
response = requests.post(url, json=data, headers=headers)

# 打印状态码和返回内容方便后续排查
print(response.status_code)
print(response.json())

如果习惯手动构造JSON字符串,去掉多余的序列化调用即可:

# 仅作为可选写法参考,更推荐上面的字典传参方案
data = '{"currency": "USD","sort": "rank","order": "ascending","offset": 0,"limit": 50,"meta": false}'
response = requests.post(url, data=data, headers=headers)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:07