我想寫一個腳本,可以解析一個url並從中獲取查詢參數。到目前爲止,我主要得到它,但urllib.urlencode添加方括號和單引號給我的價值,當我認爲它不應該。這很可能是我的誤解,所以如果有人能解釋爲什麼會發生這種情況以及如何避免它,我會非常感激。這裏是我的腳本:爲什麼urllib.urlencode將方括號和單引號添加到我的字典值中?
#/usr/bin/python
import urlparse
import urllib
url = 'https://mysite.com?Action=ParseUrl'
parsed_url = urlparse.urlparse(url)
query_params = urlparse.parse_qs(parsed_url.query)
query_string = urllib.urlencode(query_params)
print query_string
輸出的結果是:
Action=%5B%27ParseUrl%27%5D
所以,你可以看到「操作」的價值得到了urlencoded的[」「]字符包圍。我想我的query_string變量的值爲:
Action=ParseUrl
我可以對腳本做些什麼來實現此目的。我意識到我可以破解某些reg exp來刪除角色,但我寧願理解爲什麼這種方式不能按照我希望的方式工作的根本原因,所以我可以在將來避免這個問題。
謝謝!
我有點困惑,爲什麼你一直通過'urlparse'運行它後,解析您的查詢字符串。 'parsed_url.query'已經是你需要的格式了 - 一個扁平的字符串。 – roippi
如果你正在編寫新的代碼,你應該考慮使用'urllib.parse'等 – filmor
「我有點困惑,爲什麼你一直通過運行裏urlparse之後解析您的查詢字符串parsed_url.query已經在你需要的格式。 - 一個扁平的字符串「。 –