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

Python请求API时为字典键设多值报错,寻求技术协助

解决"cannot specify a field more than once"错误

问题出在你传递多值参数的方式上:当你给字典里的indcode赋值元组(10,23,81)时,requests库会自动把它拆成多个indcode参数拼到URL里,变成indcode=10&indcode=23&indcode=81,而这个Socrata平台的API不允许同一个字段重复出现。

要解决这个问题,得用该API支持的多值查询语法——$in操作符,格式是indcode=$in=(值1,值2,值3)。

修正后的代码:

import requests

URL = "https://data.colorado.gov/resource/cjkq-q9ih.json"
params = {
    "area": 57,
    "indcode": "$in=(10,23,81)"
}

document = requests.get(URL, params=params)
print(document.request.url)

如果需要更灵活地处理动态生成的代码列表,可以用字符串拼接的方式:

import requests

URL = "https://data.colorado.gov/resource/cjkq-q9ih.json"
ind_codes = [10,23,81]
params = {
    "area": 57,
    "indcode": f"$in=({','.join(map(str, ind_codes))})"
}

document = requests.get(URL, params=params)
print(document.request.url)

这样URL里的参数会变成indcode=$in=(10,23,81),符合API的查询规则,就不会触发重复字段的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:11:20