2012-04-07 12 views
0

辞書を文字列に変換する方法を検索しています。しかし、見つかった結果は私が探しているものではありません。 私が現在見つけた結果は、基本的に辞書全体を文字列に変換していますが、私は実際には{}、と:を望んでいません。 ソートされたURLvarsの辞書があります。私は再び一緒に参加したいと思っていました。dictを文字列に変換する

vars = {"id":"2", "test":"3"} 

ので、私はこの辞書を変換する方法たい:

vars = "id=2&test=3" 

UPDATE:助けを 感謝を。ここで私がやっている大きなスクリプトのために作った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

は、urllib.urlencodeです:

>>> import urllib 
>>> vars = {"id":"2", "test":"3"} 
>>> urllib.urlencode(vars) 
test=3&id=2 

しかし、それはまた、彼ら%の-formに特別なURLの記号に変換することを、覚えておいてください。あなたがそれを望んでいない場合は、簡単に試してみてください:

'&'.join([`%s=%s` % (k, v) for k, v in vars.iteritems()]) 
+0

urllibセクションを上下に見ていた。そのようにurlencodeを使うとは思わなかった。 ありがとう! – TheAnonMatrix

+0

@ user1299507 [有益な回答を受け入れる](http://stackoverflow.com/faq#howtoask)が必要な場合があります。 –

関連する問題