python请求:如何定义OR参数

python请求:如何定义OR参数,python,parameters,logical-operators,python-requests,Python,Parameters,Logical Operators,Python Requests,我正在使用python中的请求模块为API查询构造URL。以下是我正在使用的代码: Params = {'q':'3145','organism':'9606'} results = requests.get("http://www.pathwaycommons.org/pc2/search.xml",params=Params) print results.url #http://www.pathwaycommons.org/pc2/search.xml?q=3146&organis

我正在使用python中的请求模块为API查询构造URL。以下是我正在使用的代码:

Params = {'q':'3145','organism':'9606'}
results = requests.get("http://www.pathwaycommons.org/pc2/search.xml",params=Params)
print results.url  #http://www.pathwaycommons.org/pc2/search.xml?q=3146&organism=9606
我想向q参数(q=3145或177)添加一个OR条件。最终的url应该是
http://www.pathwaycommons.org/pc2/search.xml?q=3146|177&organism=9606
。如果我使用了
Params={'q':['3145','177'],'Organic':'9606'}
,则输出url是
“http://www.pathwaycommons.org/pc2/search.xml?q=3146&q=177&organism=9606“
。我没有找到关于如何为或条件定义参数字典的任何信息。有人能给点主意吗

先谢谢你


Wendy

这是我第一次看到这种“或”语法,所以我不确定它是否标准

无论如何,您可以通过
连接
参数列表来创建一个字符串,如下所示:

params = {
  'q': '|'.join(['3145','177']),
  'organism': '9606'
}

这是我第一次看到这种“或”语法,所以我不确定它是否标准

无论如何,您可以通过
连接
参数列表来创建一个字符串,如下所示:

params = {
  'q': '|'.join(['3145','177']),
  'organism': '9606'
}

查询字符串中的
&
符号不是逻辑AND运算符,它只是一个分隔符。标准允许使用分号代替。如果你考虑这个问题,你会发现“”不是一个OR运算符,它只是<代码> Q>代码>参数的一部分:<代码> q=3146×177 < /代码>。事实上,它被解释为或完全特定于特定的API,他们几乎可以为此选择任何其他符号,例如
q=3146177
@Sergey,非常感谢您澄清这一点。查询字符串中的
&
符号不是逻辑AND运算符,它只是一个分隔符。标准允许使用分号代替。如果你考虑这个问题,你会发现“”不是一个OR运算符,它只是<代码> Q>代码>参数的一部分:<代码> q=3146×177 < /代码>。事实上,它被解释为或完全特定于特定的API,他们几乎可以选择任何其他符号,例如
q=3146177
@Sergey,非常感谢您澄清这一点。