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

6 投票
1 回答
3384 浏览
提问于 2025-04-16 12:45

我正在用Python写一个测试脚本,目的是检查我的PHP应用的输出。不过,我遇到了一个问题,跟Python的urlparse.parse_qs()函数有关。根据我所知,GET请求的字符串分隔符是“&”。这个函数的作用是把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)

1 个回答

撰写回答