Bisakah saya memilih kamus dengan python?

Tutorial ini akan mencakup modul pickle, yang merupakan bagian dari library standar Anda dengan instalasi Python Anda

Jadi apa itu pengawetan? . Unpicking adalah kebalikannya

Anda mungkin mendengar metodologi ini disebut serialisasi, marshalling atau perataan dalam bahasa lain, tetapi secara eksklusif disebut sebagai pengawetan dalam Python. Jadi, apa artinya pengawetan?

Pengawetan digunakan untuk menyimpan objek python. Ini berarti hal-hal seperti daftar, kamus, objek kelas, dan banyak lagi

Apa saja contohnya?

Secara umum, Anda akan menemukan pickling paling berguna dengan analisis data, di mana Anda melakukan tugas rutin pada data, seperti pra-pemrosesan. Selain itu, sangat masuk akal saat Anda bekerja dengan tipe data khusus Python, seperti kamus

Misalnya, kami menggunakan pengawetan dalam seri tutorial NLTK untuk menyimpan algoritme pembelajaran mesin terlatih kami. Hal ini dimaksudkan agar setiap kali kita ingin menggunakannya, kita tidak perlu terus-menerus melatihnya kembali yang memakan waktu cukup lama.

Sebagai gantinya, kami hanya melatih algoritme sekali, menyimpannya ke variabel [objek], lalu kami mengambilnya. Dalam kasus modul NLTK, membuat pengklasifikasi setiap kali membutuhkan waktu 5-15+ menit. Dengan acar, butuh waktu sekitar 5 detik

Jika Anda memiliki kumpulan data yang besar, misalnya, dan Anda memuat kumpulan data yang sangat besar itu ke dalam memori setiap kali Anda menjalankan program, mungkin masuk akal untuk mengambilnya, lalu memuatnya, karena itu akan menjadi

Mari kita tunjukkan contoh sederhana

import pickle

example_dict = {1:"6",2:"2",3:"f"}

pickle_out = open["dict.pickle","wb"]
pickle.dump[example_dict, pickle_out]
pickle_out.close[]

Pertama, impor acar untuk menggunakannya, lalu kita tentukan kamus contoh, yang merupakan objek Python
Selanjutnya, kami membuka file [perhatikan bahwa kami membuka untuk menulis byte dengan Python 3+], lalu kami menggunakan acar. dump[] untuk memasukkan dict ke dalam file yang dibuka, lalu tutup

Kode di atas akan menyimpan file acar untuk kita, sekarang kita perlu membahas cara mengakses file acar

pickle_in = open["dict.pickle","rb"]
example_dict = pickle.load[pickle_in]
_

Buka file acar
Gunakan acar. load[] untuk memuatnya ke var

Itu semua ada untuk itu, sekarang Anda dapat melakukan hal-hal seperti

print[example_dict]
print[example_dict[3]]

Ini menunjukkan bahwa kami mempertahankan tipe data dict

Dengan menyimpan objek serial, sifatnya disertakan, jadi kita tidak perlu khawatir memuat hal-hal "sebagai" string, kamus, daftar, dll.

Python menyediakan modul acar untuk Serialisasi dan de-Serialisasi objek python seperti daftar, kamus, tupel, dll. Pengawetan juga disebut marshaling atau perataan dalam bahasa lain. Pengawetan digunakan untuk menyimpan objek python

  • Serialisasi atau Pengawetan. Pengawetan atau Serialisasi adalah proses mengubah objek Python [daftar, dikt, tupel, dll. ] menjadi aliran byte yang dapat disimpan ke disk atau dapat ditransfer melalui jaringan
  • De-serialization atau un pickling. Aliran byte yang disimpan pada file berisi informasi yang diperlukan untuk merekonstruksi objek python asli. Proses mengubah aliran byte kembali ke objek python disebut de-serialisasi

Sintaksis

Di bawah ini adalah langkah-langkah pengawetan dengan python

  1. Impor modul acar
  2. Use pickle.dump[object, filename] method to save the object into file : this will save the object in this file in byte format.
  3. Gunakan acar. memuat [nama file]. untuk memuat kembali objek python dari file tempatnya dibuang sebelumnya

Contoh Acar Python

Contoh-contoh berikut diberikan di bawah ini

Mulai Kursus Pengembangan Perangkat Lunak Gratis Anda

Pengembangan web, bahasa pemrograman, pengujian Perangkat Lunak & lainnya

Paket Pengembangan Perangkat Lunak Semua dalam Satu[600+ Kursus, 50+ proyek]

Harga
Lihat Kursus

600+ Kursus Daring. 50+ proyek. 3000+ Jam. Sertifikat yang Dapat Diverifikasi. Akses Seumur Hidup
4. 6 [86.502 peringkat]

Contoh 1

Program untuk mengilustrasikan pengawetan daftar python

Kode

# Program for pickling python lists
# importing module
print['']
import pickle
# number of input data to take
n = int[input["Enter the number of items"]]
data = []  # input list
# adding items to the list
for d in range[n]:
    item = input["Enter data :" + str[d+1]+': ']
    data.append[[item]]
# open a file where data need to be stored
file = open['list.pkl', 'wb']
# dump information to the file
pickle.dump[data, file]
# close the file
file.close[]
print['\n']
print['']
# open the file where data is dumped
fileo = open['list.pkl', 'rb']
# loading data
datao = pickle.load[fileo]
# close the file
fileo.close[]
# showing pickled data
print["showing data pickled"]
for i in datao:
    print[i]

Keluaran

Penjelasan

Penjelasan untuk kode di atas

Pengawetan

  • Modul acar diimpor
  • jumlah item [n] untuk ditambahkan ke daftar kosong diminta oleh pengguna
  • menggunakan untuk loop "n" jumlah item ditambahkan ke daftar
  • file baru dibuka dalam mode tulis-byte "wb".
  • daftar akan disimpan ke file ini menggunakan acar. membuang[] metode
  • file ditutup

Tidak Mengawetkan

  • file di mana daftar dibuang dibuka dalam mode read-bytes "RB".
  • data diambil dari file menggunakan acar. memuat[]
  • file ditutup
  • data dimuat dicetak dengan melintasi daftar

Contoh #2

Program untuk mengilustrasikan pengawetan kamus python

Kode

# Python program for serialization and de-serialization of dictionary
# importing module
import pickle
# creating python object --> dictionary
dictionary = {1: 'monday', 2: 'tuesday', 3: 'wednesday', 4: 'thursday', 5: 'friday', 6: 'saturday', 7: 'sunday'}
print['']
# open a file where to store dictionary
print["dictionary to be stored:"]
print[dictionary]
file = open['dictionary.pkl', 'wb']
pickle.dump[dictionary, file] # storing dictionary into file
# closing file
file.close[]
print['\n']
print['']
fileo = open['dictionary.pkl', 'rb']
dicto = pickle.load[fileo]
fileo.close[]
print["displaying dictionary data"]
for key, item in dicto.items[]:
    print[key, '-->', item]
_

Keluaran

Penjelasan

Penjelasan untuk kode di atas

  • Modul acar diimpor
  • objek python, kamus, dalam hal ini, dibuat
  • file tempat kamus akan disimpan dibuka dalam mode tulis-byte "wb".
  • kamus dibuang menggunakan acar. membuang[] metode
  • file ditutup
  • untuk mengambil file kamus dibuka dalam mode read-bytes “RB”.
  • file ditutup
  • item kamus kemudian dicetak menggunakan for loop

Contoh #3

Program untuk mengilustrasikan pengawetan fungsi python

Kode

# Python program for serialization and de-serialization of function
# importing module
import pickle
# creating python object --> function[]
# pickling
def add[a, b]:
    return [a+b]
# opening file to store the add[]
file = open['function.pkl', 'wb']
pickle.dump[add, file]
# closing file
file.close[]
# unpickling
fileo = open['function.pkl', 'rb']
addition = pickle.load[fileo]
fileo.close[]
# calling function
x = int[input["enter first number"]]
y = int[input["enter second number"]]
print["sum of numbers entered is :", addition[x, y]]

Keluaran

Penjelasan

Penjelasan untuk kode di atas

  • Modul acar diimpor
  • fungsi add[] dibuat à objek Python yang akan disimpan ke dalam file
  • file dibuka dalam mode tulis-byte "wb".
  • menggunakan acar. dump[], fungsi add[] dibuang atau disimpan dalam file ini
  • file ditutup
  • untuk mengambil file fungsi sekarang dibuka dalam mode read-bytes “RB”.
  • menggunakan acar. load[], add[] dimuat
  • pengguna kemudian diminta untuk dua angka yang diteruskan ke add[]
  • Penjumlahan dari dua angka dicetak

Keuntungan dan Kerugian dengan penggunaan Pengawetan

  • Ini digunakan untuk menyimpan objek Python. Kita tidak perlu membuat objek yang sama lagi dan lagi. Kami akan membuat objek satu kali dan kemudian menyimpannya ke dalam disk [pengawetan], dan nanti, kami memuat objek ini dari disk [unpickling] tanpa harus membuat objek lagi
  • Pengawetan sebagian besar berguna dalam Pembelajaran Mesin. Model pembelajaran mesin dilatih pada kumpulan data yang sangat besar, dan melatih model menghabiskan banyak waktu. Jadi jika kita harus melatih model yang sama, itu tidak akan menjadi panggilan yang baik lagi dan lagi. Untuk menghindari atau mengurangi waktu dan kerja keras, pengawetan sangat berguna. Kita harus melatih model kita sekali saja, yang kemudian dapat disimpan ke dalam disk lokal, dan ketika kita perlu menguji model kita, kita dapat memuatnya dari disk tanpa harus melatihnya lagi
  • Karena khusus untuk Python saja, ini tidak menjamin kompatibilitas lintas bahasa
  • Bahkan versi python yang berbeda tidak kompatibel satu sama lain. Artinya pengawetan yang dilakukan adalah python versi 2. x mungkin tidak berfungsi di python versi 3. x
  • Menghapus data dari sumber yang tidak dikenal harus dihindari karena mungkin berisi data berbahaya atau salah

Kesimpulan

Modul acar Python adalah cara yang bagus untuk menyimpan objek python seperti tuple, kamus, daftar, dan bahkan kelas dan fungsi python dapat diserialkan dan dide-serialkan. Tapi itu mungkin tidak mendukung kompatibilitas lintas bahasa, beberapa versi python. Selain itu, membongkar dari sumber yang tidak dikenal harus dihindari karena mungkin mengandung data yang berbahaya dan salah

Artikel yang Direkomendasikan

Ini adalah panduan untuk Python Pickle. Disini kita bahas pengenalan Python Pickle beserta contoh dan kelebihan & kekurangannya. Anda juga dapat membaca artikel terkait lainnya untuk mempelajari lebih lanjut –

Bagaimana Anda menyimpan kamus dalam acar?

Gunakan acar. dump[] untuk menyimpan kamus ke file Panggil open[file, mode] dengan nama file yang diinginkan sebagai file dan "wb" sebagai mode untuk membuka . Gunakan acar. dump[obj, file] dengan kamus sebagai obj dan objek file sebagai file untuk menyimpan kamus dalam file.

Apa yang tidak bisa diasinkan dengan Python?

Dengan protokol pickle v1, Anda tidak dapat membuka objek file, koneksi jaringan, atau koneksi database .

Bagaimana cara mengubah kamus menjadi file acar?

Cara menulis kamus atau daftar ke file acar biner dengan. .
Contoh data untuk contoh ini. .
Simpan dan buat serial kamus dengan acar. .
Muat dan baca kamus dari file acar. .
Tulis dan muat ke Pickle with Pandas. .
Serialkan daftar dengan acar. .
Pembelajaran terkait

Bisakah Anda membuat acar objek Python?

Modul pickle khusus untuk Python yang berarti bahwa setelah objek diserialisasi, Anda tidak dapat melakukan deserialisasi menggunakan bahasa lain seperti PHP, Java, Perl, dll. . Membongkar dengan muatan[]

Bài mới nhất

Chủ Đề