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

使用requests发起GET请求时如何传递多个contract_types参数?

解决Delta Exchange API多参数传递问题

问题原因分析

  1. 手动拼接URL时,逗号后多了空格,导致API将 put_options(带前导空格)识别为无效值,仅返回call_options的结果。
  2. 使用params参数时写法错误:{call_options,put_options}是集合而非字典,且call_options未定义为变量,不符合requests的参数传递规范。

可行解决方法

方法1:修正手动拼接的URL(移除空格)

直接去掉逗号后的空格,确保参数值格式符合API要求:

import requests
r = requests.get('https://api.delta.exchange/v2/tickers?contract_types=call_options,put_options')

方法2:使用requests的params参数(推荐)

用字典传递参数,更规范且避免URL拼接错误:

import requests

url = 'https://api.delta.exchange/v2/tickers'
# 方式A:逗号分隔的字符串(符合API文档要求)
params = {'contract_types': 'call_options,put_options'}
r = requests.get(url, params=params)

# 方式B:部分API支持重复参数名,可传列表让requests自动拼接为contract_types=call_options&contract_types=put_options
# 若方式A无效可尝试此方法
# params = {'contract_types': ['call_options', 'put_options']}
# r = requests.get(url, params=params)

错误写法说明

你之前用的request.get(url, params={call_options,put_options})存在两个问题:

  • 这里的{}定义的是集合,而requests要求params是字典类型(键为参数名,值为参数值)。
  • call_options和put_options是字符串字面量,需要加引号,否则会被当作未定义的变量,引发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:25:01