Python Data Persistence - Nesne Serileştirme

Python'un yerleşik open () işlevi tarafından döndürülen Python'un yerleşik dosya nesnesinin önemli bir eksikliği vardır. "W" moduyla açıldığında, write () yöntemi yalnızca dize nesnesini kabul eder.

Yani, herhangi bir dize olmayan biçimde temsil edilen verileriniz varsa, yerleşik sınıflardaki nesneler (sayılar, sözlükler, listeler veya gruplar) veya diğer kullanıcı tanımlı sınıflar, doğrudan dosyaya yazılamaz. Yazmadan önce, onu dizgi temsiline dönüştürmeniz gerekir.

numbers=[10,20,30,40]
   file=open('numbers.txt','w')
   file.write(str(numbers))
   file.close()

İkili bir dosya için argüman write()yöntem bir bayt nesnesi olmalıdır. Örneğin, tamsayıların listesi bayta dönüştürülür.bytearray() işlevi ve sonra dosyaya yazılır.

numbers=[10,20,30,40]
   data=bytearray(numbers)
   file.write(data)
   file.close()

Dosyadan verileri ilgili veri türünde geri okumak için ters dönüştürme yapılması gerekir.

file=open('numbers.txt','rb')
   data=file.read()
   print (list(data))

Bir nesnenin dizgeye veya bayt biçimine (ve tersi) bu tür manuel dönüştürmesi çok külfetli ve sıkıcıdır. Bir Python nesnesinin durumunu bayt akışı biçiminde doğrudan bir dosyaya veya bellek akışına depolamak ve orijinal durumuna geri getirmek mümkündür. Bu sürece serileştirme ve serileştirme adı verilir.

Python'un yerleşik kütüphanesi, serileştirme ve seriyi kaldırma işlemi için çeşitli modüller içerir.

Sr.No. İsim & Açıklama
1

pickle

Python'a özgü serileştirme kitaplığı

2

marshal

Serileştirme için dahili olarak kullanılan kitaplık

3

shelve

Pythonic nesne kalıcılığı

4

dbm

Unix veritabanı için kütüphane sunan arabirim

5

csv

Python verilerinin CSV formatında depolanması ve alınması için kütüphane

6

json

Evrensel JSON biçimine serileştirme kitaplığı