为什么Python的urlparse.parse_qs()用分号分割参数

问题描述 投票:0回答:1

我正在用 Python 编写一个测试脚本来检查 PHP 应用程序的输出,但 Python 的

urlparse.parse_qs()
函数出现问题。 GET 字符串定界符 (AFAIK) 是一个 & 符号。该函数(据我了解)应该将 GET 字符串拆分为 Python 字典,因此
count=2&offset=5&userID=1
的输出应该是:

{'count': ['2'], 'userID': ['1'], 'offset': ['5']}

确实如此。但是当我尝试在 GET 中传递 CSV(用分号分隔)时,例如

ids=5;15;3
,我得到以下信息:

[('3', ''), ('15', ''), ('ids', '5')]

我认为有效的输出应该是这样的:

{'ids': ['5;15;3']}

我做错了什么?该行看起来像这样:

args = urlparse.parse_qs(sys.argv[2], keep_blank_values=True)
python http get query-string
1个回答
13
投票

这个答案已经过时了。看评论。

';'相当于 '&'

W3C 建议所有 Web 服务器支持分号分隔符来代替 & 符号分隔符。

所以请使用 ',' 来代替。

© www.soinside.com 2019 - 2024. All rights reserved.