Sha*_*obe 41 python python-2.6
在python 2.6中,以下代码:
import urlparse
qsdata = "test=test&test2=test2&test2=test3"
qs = urlparse.parse_qs(qsdata)
print qs
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
{'test': ['test'], 'test2': ['test2', 'test3']}
Run Code Online (Sandbox Code Playgroud)
这意味着即使测试只有一个值,它仍然被解析为一个列表.有没有办法确保如果只有一个值,它不会被解析成一个列表,所以结果看起来像这样?
{'test': 'test', 'test2': ['test2', 'test3']}
Run Code Online (Sandbox Code Playgroud)
tuo*_*alo 117
对于想要一个简单的字典并且永远不需要具有相同键的多个值的人的旁注,请尝试:
dict(urlparse.parse_qsl('foo=bar&baz=qux'))
Run Code Online (Sandbox Code Playgroud)
这会给你一个很好的{'foo': 'bar', 'baz': 'qux'}
.请注意,如果同一个键有多个值,则只能获得最后一个值.
Sin*_*ion 25
你可以事后解决它......
import urlparse
qsdata = "test=test&test2=test2&test2=test3"
qs = dict( (k, v if len(v)>1 else v[0] )
for k, v in urlparse.parse_qs(qsdata).iteritems() )
print qs
Run Code Online (Sandbox Code Playgroud)
但是,我不认为我会想要这个.如果一个通常是列表的参数恰好只有一个项目集到达,那么我会有一个字符串而不是我通常收到的字符串列表.
归档时间: |
|
查看次数: |
20858 次 |
最近记录: |