Saya berjuang dengan masalah berikut: Saya ingin mengubah OrderedDict
seperti ini:
OrderedDict([('method', 'constant'), ('data', '1.225')])
menjadi dikt biasa seperti ini:
{'method': 'constant', 'data':1.225}
karena saya harus menyimpannya sebagai string dalam database. Setelah konversi, urutannya tidak penting lagi, jadi saya bisa menyimpan fitur yang dipesan.
Terima kasih atas petunjuk atau solusi apa pun,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Jawaban:
Namun, untuk menyimpannya dalam database, akan lebih baik jika mengubahnya menjadi format seperti JSON atau Pickle. Dengan Pickle, Anda bahkan dapat mempertahankan pesanan!
sumber
json
terlalu .Meskipun ini adalah pertanyaan lama, saya ingin mengatakan bahwa penggunaan
dict
tidak akan membantu jika Anda memiliki perintah yang diurutkan dalam perintah yang diurutkan. Cara paling sederhana yang dapat mengubah dikt berurutan rekursif tersebut adalahsumber
Mudah untuk mengubah Anda
OrderedDict
menjadi biasaDict
seperti ini:Jika Anda harus menyimpannya sebagai string dalam database Anda, menggunakan JSON adalah cara yang tepat. Itu juga cukup sederhana, dan Anda bahkan tidak perlu khawatir untuk mengubahnya menjadi biasa
dict
:Atau buang data langsung ke file:
sumber
Jika Anda mencari versi rekursif tanpa menggunakan
json
modul:sumber
Inilah yang tampaknya paling sederhana dan berfungsi di python 3.7
Sekarang untuk memeriksa ini:
CATATAN: Ini juga berfungsi, dan memberikan hasil yang sama -
Dan juga ini -
Bersulang
sumber
Jika entah bagaimana Anda menginginkan solusi yang sederhana namun berbeda, Anda dapat menggunakan
{**dict}
sintaks:sumber
Caranya sederhana
sumber