2012-04-07 3 views
0

Habe gesucht, wie man ein Wörterbuch in eine Zeichenkette umwandelt. Aber die gefundenen Ergebnisse sind nicht die, nach denen ich suche. Die Ergebnisse, die ich derzeit finde, sind im Grunde genommen das ganze Wörterbuch in eine Zeichenkette umzuwandeln, aber ich will nicht wirklich {},, und: in meiner Zeichenkette. Also habe ich ein Wörterbuch der sortierten URLvars, die ich wieder zusammenfügen wollte.Dict in String konvertieren

vars = "id=2&test=3" 

UPDATE: Danke für die Hilfe zu

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

so möchte ich eine Möglichkeit, dieses Wörterbuch zu konvertieren. Hier ist auch der POC, den ich für das größere Skript gemacht habe, das ich mache! Könnte bessere Möglichkeiten, diese tho zu schreiben; 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 

Antwort

0

Was Sie brauchen, ist urllib.urlencode:

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

Aber denken Sie daran, dass es auch spezielle URL Symbole ihres% -Form umwandelt. Also, wenn Sie das nicht wollen, versuchen Sie einfach:

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

Argh. Ich habe den urllib Abschnitt hoch und runter geschaut. Ich dachte nicht daran, urlencode auf diese Weise zu verwenden. Danke! – TheAnonMatrix

+0

@ user1299507 möchten Sie vielleicht [die hilfreiche Antwort akzeptieren] (http://stackoverflow.com/faq#howtoask). –