Zmagam się z następującym problemem: Chcę przekonwertować OrderedDict
taki:
OrderedDict([('method', 'constant'), ('data', '1.225')])
do zwykłego dyktu, takiego jak ten:
{'method': 'constant', 'data':1.225}
ponieważ muszę przechowywać go jako ciąg w bazie danych. Po konwersji kolejność nie jest już ważna, więc i tak mogę oszczędzić zamówioną funkcję.
Dzięki za podpowiedź lub rozwiązania,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Odpowiedzi:
Jednak aby przechowywać go w bazie danych, znacznie lepiej byłoby przekonwertować go do formatu takiego jak JSON lub Pickle. Z Pickle zachowujesz nawet porządek!
źródło
json
zbyt .Mimo, że jest to pytanie od lat, chciałbym powiedzieć, że używanie
dict
nie pomoże, jeśli masz uporządkowany dyktando w ramach zamówionego dyktu. Najprostszym sposobem konwersji tych rekurencyjnych uporządkowanych dykt będzieźródło
Łatwo jest przekonwertować swój
OrderedDict
zwykły naDict
taki:Jeśli musisz przechowywać go jako ciąg w swojej bazie danych, najlepszym rozwiązaniem jest użycie formatu JSON. Jest to również dość proste i nie musisz się nawet martwić o konwersję do zwykłego
dict
:Lub zrzuć dane bezpośrednio do pliku:
źródło
Jeśli szukasz wersji rekurencyjnej bez użycia
json
modułu:źródło
Oto, co wydaje się najprostsze i działa w Pythonie 3.7
Teraz, aby to sprawdzić:
UWAGA: To również działa i daje ten sam wynik -
Tak dobrze jak to -
Twoje zdrowie
źródło
Jeśli w jakiś sposób chcesz prostego, ale innego rozwiązania, możesz użyć
{**dict}
składni:źródło
To prosty sposób
źródło