2017-02-01 6 views
1

Ich habe eine String -ersetzen doppelte Anführungszeichen mit ' "' in Python

l = '{"a": "1", "b": "2"}' 

Ich mag diese Zeichenfolge konvertieren - die

'{\"a\": \"1\", \"b\": \"2\"}' 

Denn ich zu ersetzen versuchen" mit \ "

Hier ist, was ich versucht habe -

l.replace('\"', '\"') 
'{"a": "1", "b": "2"}' 

l.replace('\"', '\\"') 
'{\\"a\\": \\"1\\", \\"b\\": \\"2\\"}' 

Wie konvertiere ich {\"a\": \"1\", \"b\": \"2\"}?

+0

häufig das erste Argument eines Ersetzen-String ist der Wert, den Sie ändern möchten, und das zweite ist, was Sie es ändern wollen. In diesem Fall möchten Sie 'l.replace ('' ',' \ '')' ändern, um das gewünschte Ergebnis zu erhalten. – TravisF

+0

Es gibt auch '{"a": "1", "b": "2"}' –

+0

Mögliches Duplikat von http://stackoverflow.com/questions/18886596/replace-all-quotes-in-a-string-with-escaped-quotes – Avi

Antwort

5

Versuchen Sie folgendes:

print l.replace('"','\\"') 

'\"' bedeutet nicht, etwas Besonderes zu Python, so dass Sie nicht brauchen \ vor " hinzufügen möchten, wenn Sie

print l.replace('\"', '\\"') ausführen, werden Sie einen einzelnen Backslash erhalten auch.

Eigentlich, was Sie sehen, ist die Darstellung des Strings, wird es hinzugefügt von repr() method.Python Schrägstriche in Strings als \\ darstellt, da der Backslash ein Escape Character ist.

Wenn Sie es drucken, erhalten Sie einen einzelnen Backslash.

Weitere Informationen finden Sie unter String and Bytes literals.

+0

Oder 'print (l.replace ('' ',' \\" ')) 'wenn Sie keine alte/ältere Version von Python verwenden. – semicolon

0

Sie können dies auch versuchen,

print l.replace('"',r'\"') 

oder

print l.replace('"','\\"') 
Verwandte Themen