397 Stimmen

Konvertiert ein Python-Dict in einen String und zurück

Ich schreibe ein Programm, das Daten in einem Wörterbuchobjekt speichert. Diese Daten müssen jedoch zu einem bestimmten Zeitpunkt während der Programmausführung gespeichert und bei der nächsten Ausführung des Programms wieder in das Wörterbuchobjekt geladen werden. Wie kann ich ein Wörterbuchobjekt in eine Zeichenkette umwandeln, die in eine Datei geschrieben und wieder in ein Wörterbuchobjekt geladen werden kann? Dies wird hoffentlich Wörterbücher mit Wörterbüchern unterstützen.

1voto

Gerard Punkte 158

Ich verwende yaml dafür, wenn es lesbar sein muss (weder JSON noch XML sind das IMHO), oder wenn Lesen nicht notwendig ist, verwende ich pickle.

Schreiben Sie

from pickle import dumps, loads
x = dict(a=1, b=2)
y = dict(c = x, z=3)
res = dumps(y)
open('/var/tmp/dump.txt', 'w').write(res)

Zurück lesen

from pickle import dumps, loads
rev = loads(open('/var/tmp/dump.txt').read())
print rev

1voto

Abdul Muiz Khan Punkte 11

Ich habe herausgefunden, dass das Problem nicht bei meinem Diktat-Objekt lag, sondern bei den Schlüsseln und Werten, die vom Typ RubyString waren, nachdem ich sie mit der RubyMarshl-Methode "loads" geladen hatte

Also habe ich dies getan:

dic_items = dict.items()
new_dict = {str(key): str(value) for key, value in dic_items}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X