Ich habe mit folgendem Problem zu kämpfen: Ich möchte ein solches konvertieren OrderedDict
:
OrderedDict([('method', 'constant'), ('data', '1.225')])
in ein reguläres Diktat wie dieses:
{'method': 'constant', 'data':1.225}
weil ich es als String in einer Datenbank speichern muss. Nach der Konvertierung ist die Bestellung nicht mehr wichtig, so dass ich die bestellte Funktion trotzdem schonen kann.
Vielen Dank für Hinweise oder Lösungen,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Antworten:
Um es jedoch in einer Datenbank zu speichern, ist es viel besser, es in ein Format wie JSON oder Pickle zu konvertieren. Mit Pickle behalten Sie sogar die Ordnung!
quelle
json
zu .Auch wenn dies eine einjährige Frage ist, möchte ich sagen, dass die Verwendung
dict
nicht hilft, wenn Sie ein bestelltes Diktat innerhalb des bestellten Diktats haben. Der einfachste Weg, dieses rekursiv geordnete Diktat umzuwandeln, istquelle
Es ist einfach, Ihre
OrderedDict
in eine reguläreDict
wie folgt umzuwandeln :Wenn Sie es als Zeichenfolge in Ihrer Datenbank speichern müssen, ist die Verwendung von JSON der richtige Weg. Das ist auch ganz einfach, und Sie müssen sich nicht einmal um die Umstellung auf eine reguläre Version kümmern
dict
:Oder sichern Sie die Daten direkt in einer Datei:
quelle
Wenn Sie nach einer rekursiven Version suchen, ohne das
json
Modul zu verwenden:quelle
Folgendes scheint am einfachsten zu sein und funktioniert in Python 3.7
Um dies zu überprüfen:
HINWEIS: Dies funktioniert auch und führt zum gleichen Ergebnis -
So gut wie das -
Prost
quelle
Wenn Sie irgendwie eine einfache, aber andere Lösung wünschen, können Sie die folgende
{**dict}
Syntax verwenden:quelle
Es ist einfach
quelle