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

Python使用requests发GET请求时无法在查询参数中传入变量如何解决

解决方案

问题根因

你当前代码中的ord是写死在字符串常量里的,Python不会将其识别为你提前定义的变量,服务端最终收到的过滤规则是OrderNo in ord,而非包含变量值的正确规则。另外你原有代码中requests.get的传参名写错了,正确参数名是params而非param。

正确实现方式

方法1:f-string拼接(推荐,Python3.6+支持)

这是最简洁的写法,注意如果OrderNo是字符串类型,需要给变量值包裹单引号,符合OData的$filter语法要求:

import requests

ord = '12345'
query = { '$filter': f"OrderNo in '{ord}'" }
response = requests.get('https://example.com/orderDetails', params=query)
print(response.json())

方法2:format方法(兼容低版本Python)

如果使用的Python版本低于3.6,可以用str.format()实现拼接:

ord = '12345'
query = { '$filter': "OrderNo in '{}'".format(ord) }

特殊场景:变量值包含单引号

如果ord的值可能存在单引号,需要先做转义避免语法错误:

ord = "123'45"
# 转义单引号符合OData语法规则
escaped_ord = ord.replace("'", "''")
query = { '$filter': f"OrderNo in '{escaped_ord}'" }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:15:00