According to the docs, die eingebaute String-Codierung string_escape
:Python "string_escape" vs "unicode_escape"
Produce [s] eine Zeichenfolge, die als Stringliteral in Python Quellcode
geeignet ist ... während die unicode_escape
:
Produce [s] eine Zeichenfolge, die in Python Quellcode geeignet als Unicode Literal ist
Also sollten sie ungefähr das gleiche Verhalten haben. ABER, erscheinen sie Apostrophe anders zu behandeln:
>>> print """before '" \0 after""".encode('string-escape')
before \'" \x00 after
>>> print """before '" \0 after""".encode('unicode-escape')
before '" \x00 after
Die string_escape
entkommt dem Apostroph, während die eine Unicode nicht. Ist es sicher anzunehmen, dass ich einfach kann:
>>> escaped = my_string.encode('unicode-escape').replace("'", "\\'")
... und das erwartete Verhalten erhalten?
Bearbeiten: Nur um super klar zu sein, ist das erwartete Verhalten etwas als literal geeignet.
Dies war die klarste Antwort auf einen Unicode-Fehler "nicht unterstützte Unicode-Escape-Sequenz" Es funktioniert sogar in 2016! Vielen Dank! – dotslash