Saya telah melihat informasi yang diberikan Python docs , tapi saya masih sedikit bingung. Bisakah seseorang memposting kode sampel yang akan menulis file baru kemudian menggunakan acar untuk membuang kamus ke dalamnya?
python
dictionary
pickle
Chachmu
sumber
sumber
Jawaban:
Coba ini:
sumber
pickle.HIGHEST_PROTOCOL
?__slots__
). Saya tidak mengatakan Anda harus selalu menggunakanHIGHEST_PROTOCOL
, tetapi memastikan Anda tidak menggunakan protokol 0 atau 1 sebenarnya agak penting.pickle.HIGHEST_PROTOCOL
sebenarnya dilakukan?Keuntungannya
HIGHEST_PROTOCOL
adalah file menjadi lebih kecil. Ini membuat pembongkaran terkadang jauh lebih cepat.Pemberitahuan penting : Ukuran file acar maksimum adalah sekitar 2GB.
Cara alternatif
Format Alternatif
Untuk aplikasi Anda, berikut ini mungkin penting:
Lihat juga: Perbandingan format serialisasi data
Jika Anda mencari cara untuk membuat file konfigurasi, Anda mungkin ingin membaca artikel pendek saya File konfigurasi dalam Python
sumber
sumber
Secara umum, pengawetan a
dict
akan gagal kecuali Anda hanya memiliki objek sederhana di dalamnya, seperti string dan integer.Bahkan yang sangat sederhana
dict
akan sering gagal. Itu tergantung isinya saja.Namun, jika Anda menggunakan serializer yang lebih baik seperti
dill
ataucloudpickle
, maka sebagian besar kamus dapat diacak:Atau jika Anda ingin menyimpannya
dict
ke file ...Contoh terakhir identik dengan jawaban baik lainnya yang diposting di sini (yang selain mengabaikan picklability dari konten
dict
yang baik).sumber
biasanya lebih baik menggunakan implementasi cPickle
sumber
Jika Anda hanya ingin menyimpan dikt dalam satu file, gunakan
pickle
seperti ituJika Anda ingin menyimpan dan mengembalikan beberapa kamus dalam banyak file untuk menyimpan dan menyimpan data yang lebih kompleks, gunakan anycache . Itu semua hal lain yang Anda butuhkan
pickle
Anycache menyimpan
myfunc
hasil yang berbeda tergantung pada argumen untuk file yang berbedacachedir
dan memuatnya kembali.Lihat dokumentasi untuk rincian lebih lanjut.
sumber
Cara sederhana untuk membuang data Python (misalnya kamus) ke file acar.
sumber
sumber
Saya merasa acar membingungkan (mungkin karena saya kental). Saya menemukan bahwa ini bekerja, namun:
Yang kemudian dapat Anda tulis ke file teks. Saya menyerah mencoba menggunakan acar karena saya mendapatkan kesalahan mengatakan kepada saya untuk menulis bilangan bulat ke file dat. Saya minta maaf karena tidak menggunakan acar.
sumber
dict
mengandung kedalaman objek lebih lanjut (yang dapat dicetak hanya dengan nama) dan / atau objek tanpa representasi string lengkap atau apa pun.