我有
dic = {'value': '123','sort': 'desc','type': 'float'}
我希望它变成字符串:
str = 'value=123&sort=desc&type=float'
我该怎么做?
由于
答案 0 :(得分:7)
像这样:
>>> d = {'value':'123','sort':'desc','type':'float'}
>>> "&".join(["{}={}".format(k, v) for k, v in d.items()])
'sort=desc&type=float&value=123'
>>>
正如许多评论所指出的那样;如果这是用于HTTP请求,请使用urllib.urlencode
函数。
>>> from urllib import urlencode
>>> urlencode(d)
'sort=desc&type=float&value=123'
>>>
答案 1 :(得分:6)
也可以使用urllib
完成import urllib
d = {'value':'123','sort':'desc','type':'float'}
urllib.urlencode(d)
'sort=desc&type=float&value=123'
答案 2 :(得分:1)
如果您关心字符串元素的顺序,则不会使用字典,因为项目未按特定顺序存储。请改用OrderedDict。
除非结果字符串的格式始终相同,否则您可以使用格式表示法
>>> dic={'value':'123','sort':'desc','type':'float'}
>>> str='value={value}&sort={sort}&type={type}'.format(**dic)
答案 3 :(得分:-3)
dic={'value':'123','sort':'desc','type':'float'}
str=''
for i in dic:
str = str + i + '=' + dic[i] + '&'
str[:-1]
或者使用list comprehension和reduce:
reduce(lambda x,y: x+y, [i+'='+dic[i]+'&' for i in dic])[:-1]