In Python 3, wie interpoliere ich eine Byte-Zeichenfolge in eine reguläre Zeichenfolge und das gleiche Verhalten wie Python 2 (d. H. Nur die Escape-Codes ohne das Präfix b
oder doppelte Backslashes)?Python 3: Wie bekomme ich eine String-Literal-Darstellung einer Byte-Zeichenfolge?
z.B .:
Python 2.7:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
'\xd0\x9c\xd0\xb8\xd1\x80'
>>> 'x = %s' % x
'x = \xd0\x9c\xd0\xb8\xd1\x80'
Python 3.3:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
"b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
>>> 'x = %s' % x
"x = b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
Beachten Sie, wie mit Python 3, erhalte ich den b
Präfix in meiner Ausgabe und doppelten Unterstrichen. Das Ergebnis, das Ich mag würde bekommen, ist das Ergebnis, das ich in Python erhalten 2.
In Ihrem Python 3 Beispiel Sie in eine Unicode-String werden interpoliert, kein Byte-String, wie Sie in Python tun 2. –