簡體   English   中英

Python urllib2發送POST數據

[英]Python urllib2 sending POST data

我正在嘗試使用urllib發送POST數據,但是問題通常是您對字段字典進行了urlencode,然后將其與請求一起發送。 但是我必須發送到服務器的某些字段被命名為完全相同的名稱,因此使用字典后,我最終從字典中刪除了很多數據,因為您不能擁有兩個具有相同名稱的鍵,並且不同的數據。

我有正確格式的字符串格式的請求數據(例如var = value&var = value2&...),我嘗試將其與urllib請求一起發送,但每次都會收到錯誤的請求。 還有其他方法可以在發送之前對數據進行urlencode,這樣我就不會得到400?

urllib.urlencode()可以采用元組列表,允許您為參數指定多個值:

>>> urlencode([("var", "value"), ("var", "value2")])
'var=value&var=value2'

或使用以列表作為值的地圖:

>>> p = {"var": ["value", "value2"], "var2": ["yetanothervalue"]}
>>> urlencode([(k, v) for k, vs in p.items() for v in vs])
'var=value&var=value2&var2=yetanothervalue'

您甚至可以允許列表字符串作為值,盡管它變得不太簡潔:

>>> p = {"var": ["value", "value2"], "var2": "yetanothervalue"}
>>> urlencode([(k, v) for k, vs in p.items()
...     for v in isinstance(vs, list) and vs or [vs]])
'var=value&var=value2&var2=yetanothervalue'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM