repr() / pprint

Für ein Projekt habe ich dringend nach einer Möglichkeit gesucht, Python-Objekte so in Strings zu verwandeln, dass man das erhält, was man in den Python-Interpreter eingeben muss, um das entsprechende Objekt zu erzeugen.

Die meisten Primitiven (bool, int, float, ...) bringen ein entsprechendes Verhalten, wenn man sie mit str() in einen String umwandelt. Nicht so verhält es sich mit Strings, weshalb ich für diese einen Ausnahmefall behandelt habe.

Vor Kurzem bin ich dann über die Funktion "repr()" und das Modul "pprint" und dessen Methode "saferepr()" gestolpert. Diesen kann man das Objekt übergeben, das man gerne als String-Repräsentation haben möchte, und erhält diese dann auch.

import pprint
pprint.saferepr(u'Dies ist ein Unicode String.')

Der letzte Befehl gibt folgendes zurück:

"u'Dies ist ein Unicode String.'"

Tags: Python