a = b'\x00\x01'
ra = repr(a) # ra == "b'\\x00\\x01'"
assert invert_repr(ra) == a
Was ist die korrekte Form von invert_repr? string_escape & unicode_escape?Was ist die Invertierung von Bytes repr() in Python3?
a = b'\x00\x01'
ra = repr(a) # ra == "b'\\x00\\x01'"
assert invert_repr(ra) == a
Was ist die korrekte Form von invert_repr? string_escape & unicode_escape?Was ist die Invertierung von Bytes repr() in Python3?
Verwendung eval
oder gleichwertig:
from ast import literal_eval
a = b'\x00\x01'
ra = repr(a)
assert literal_eval(ra) == eval(ra) == a # no error
Ja, aber es ist wirklich langsam. Können Sie mir eine stringbasierte Operation geben? – ShenLei
@ShenLei: Nein, es gibt keine anderen Optionen. Sie haben ein Python-Byte-String-Literal, dies sind Ihre Optionen, um es erneut zu interpretieren. Warum brauchst du das? –
Weil ich Daten aus einer Textdatei gelesen habe und Inhalte mit fehlgeschlagener Dekodierung mit repr() in eine andere Datei geschrieben habe. Jetzt möchte ich letzteres verarbeiten. – ShenLei
Sind Sie 'repr()' mit serialise und unserialise Daten? Nicht, Python-Syntax ist nicht als Serialisierungsformat gedacht. Verwenden Sie stattdessen Essiggurke, Marshall oder Json. –