In Python, Wie Sie verschiedene unerwünschte Anführungszeichen in einem string zu erstellen/konvertieren zu einem Wörterbuch

Ich habe einen string in der folgenden form:

testline = "{""key1"": ""value1"", ""key2"": {""value2-subkey1"": ""value2-subvalue2""}}"

Möchte ich ersetzen Sie die doppelten Anführungszeichen mit einem single-double quote (") und die Streifen der ersten und letzten Anführungszeichen zu beenden, mit einem Wörterbuch.

So weit, ich habe etwas, was sehr viel nicht tun, was ich will.

import ast
# testline = testline.strip(")
testline = testline.replace('""', '"')
testlinedict = ast.literal_eval(testline)

So weit dies ergibt ValueError: malformed string

Ich will das Ergebnis:

testlinedict = {"key1": "value1", "key2": {"value2-subkey1": "value2-subvalue2"}}
  • das klingt wie, die Sie verwenden möchten eval - da haben Sie unerwünschte "" Ihrer Daten, die Sie haben wahrscheinlich nicht genügend Kontrolle über die Daten, und es wäre ein riesiges Sicherheits-Risiko 🙁
  • .strip() können entfernen Sie die Zeichen aus dem string nur den ersten und letzten Anführungszeichen sind nicht Teil des string-literal !!!
InformationsquelleAutor ktflghm | 2012-03-06
Schreibe einen Kommentar