2012-07-11 37 views
0

我使用python中的requests模塊來爲API查詢構造URL。以下是我正在使用的代碼:python請求:如何定義OR參數

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條件。最終的網址是http://www.pathwaycommons.org/pc2/search.xml?q=3146|177&organism=9606。如果我使用Params = {'q':['3145','177'],'organism':'9606'},則輸出url爲"http://www.pathwaycommons.org/pc2/search.xml?q=3146&q=177&organism=9606"。我還沒有找到任何有關如何爲OR條件定義參數字典的信息。有人可以提出一些想法嗎?

預先感謝您。

溫迪

+1

在查詢字符串中的'&'符號不是邏輯AND運算符,它只是一個分隔符。標準允許使用分號代替。如果你考慮到這一點,你會看到「|」不是OR運算符,它只是'q'參數值的一部分:'q = 3146 | 177'。事實上,它被解釋爲或完全特定於特定的API,他們可以選擇幾乎任何其他符號,例如'q = 3146,177' – Sergey 2012-07-11 05:35:35

+0

@謝爾蓋,非常感謝你澄清這一點。 – user1251965 2012-07-11 13:28:25

回答

4

這是我第一次看到這個「或」語法,所以我不知道這是否是標準。

不管怎麼說,你可以只是join參數列表創建一個字符串,像這樣:

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

非常感謝你。 – user1251965 2012-07-11 13:39:29