一直在搜索如何将字典转换为字符串。但结果并不是我想要的结果。 我目前发现的结果基本上是将整个字典变成一个字符串,但我真的不想要{},和:在我的字符串中。 所以我得到了一个排序的URLvars字典,我想再次加入。
vars = {"id":"2", "test":"3"}
所以我想要一种方法将这个字典转换成:
vars = "id=2&test=3"
更新 谢谢您的帮助。这也是我为我正在做的更大的剧本制作的POC!可能是写这篇文章的更好方法; P
from urlparse import urlparse
import urllib
def main(url, var, params):
urllenght = len(url)
urlfind = url.find("?")
lenght = urlfind - urllenght
params = '&'.join(["%s=%s" % (k, v) for k, v in params.iteritems()])
url = url[:lenght]
print params
print url
print url+"?"+params
if __name__ == '__main__':
url="http://test.com/index.php?id=2&test=2"
url2 = urlparse(url)
params = dict([part.split('=') for part in url2[4].split('&')])
print "Avaible URL params"
for k,v in params.items():
print "Params: %s" % k
while True:
var = raw_input("Select param: ")
if var in params:
main(url, var, params)
break
else:
pass
答案 0 :(得分:0)
您需要的是urllib.urlencode
:
>>> import urllib
>>> vars = {"id":"2", "test":"3"}
>>> urllib.urlencode(vars)
test=3&id=2
但请记住,它还会将特殊的URL符号转换为它们的%-form。所以,如果你不想那样,那就试试吧:
'&'.join([`%s=%s` % (k, v) for k, v in vars.iteritems()])