2017-03-01 2 views
0

hier definiert eine Variable:Python Ausgabe eines json Stil-String

sms_param = '{\"website\":\"hello\"}' 

und ausdrucken ok so: {"website":"hello"}, aber ich mag einen dynamischen Wert, um seinen Wert zu übergeben, so dass ihr Format diesen mag, sollte: {\"website\":\"{0}\"}.format(msg), aber es Ausgabe KeyError, habe ich keine Ahnung von diesem Fehler, und ändern Sie alle Arten von String-Format wie Tripel Angebot und ändern Sie {0} mit %s, aber alles scheint nutzlos. Wie kann ich es lösen?

+5

Drop-String-Manipulation, verwenden Sie [ die richtige json-Bibliothek] (https://docs.python.org/3/library/json.html). 'json.dumps()' ist dein Freund. – 9000

+0

Was ist der Sinn dieser Backslashes? Du brauchst sie nicht. –

+1

Wenn Sie 'format' verwenden, müssen Sie die geschweiften Klammern:' '{{"website": "{0}"}}'. Format (msg) ' –

Antwort

0

Mein Vorschlag ist mit json.loads()

>>> sms_param = '{\"website\":\"hello\"}' 
>>> import json 
>>> json.loads(sms_param) 
{'website': 'hello'} 

Was können Sie tun, wird mit json.loads() die JSON-String konvertieren Wörterbuch und dann den Wert ändern, ist es schließlich zu String zurück zu konvertieren