Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ทำความเข้าใจ Python Pickling ด้วยตัวอย่าง


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับการดองข้อมูลประเภทต่างๆ ใน ​​Python เราสามารถดองบูลีน จำนวนเต็ม โฟลต ตัวเลขเชิงซ้อน สตริง ทูเปิล รายการ ชุด และพจนานุกรมที่มีวัตถุที่เลือกได้ เอนทิตีบางอย่าง เช่น เครื่องกำเนิดไฟฟ้า คลาสภายในเครื่อง ฟังก์ชันแลมบ์ดาไม่สามารถดองได้

ดองคืออะไร

Pickling เกี่ยวข้องกับวัฏจักรต่อเนื่องของการทำให้เป็นอนุกรมและยกเลิกการซีเรียลไลซ์เอนทิตี Python ของประเภทอ็อบเจ็กต์และโครงสร้างที่เกี่ยวข้อง เรียกอีกอย่างว่า marshalling หรือ flattening สิ่งนี้เกี่ยวข้องกับการแปลงอ็อบเจ็กต์ที่อยู่ในหน่วยความจำให้อยู่ในรูปของไบต์ที่อาจเก็บไว้ในดิสก์หรือส่ง ไปยังเครือข่ายท้องถิ่น

มีข้อจำกัดในการใช้งานหรือไม่

เมื่อเราต้องการแบ่งปันข้อมูลโดยใช้ภาษาโปรแกรมต่างๆ เราไม่แนะนำให้ใช้โมดูล pickle ซึ่งหมายความว่าไม่รับประกันความเข้ากันได้ข้ามแพลตฟอร์ม

การ Pickling สามารถทำได้กับข้อมูลดิบโดยไม่ต้องจัดการไฟล์ ในโมดูลนี้ เราจะเรียนรู้วิธีที่เราสามารถดองข้อมูลดิบลงในไฟล์ไบนารีโดยกระบวนการทำให้เป็นอนุกรม

ตัวอย่าง

# Python pickling
import pickle as pk
def learnData():
   # data to be stored in database
   dict_1 = {'tutorial':'point','Python':'3.x'}
   dict_2 = {'Data
structure':'dictionary','pickling':'serialization'}
   # database
   db = {}
   db['1'] = dict_1
   db['2'] = dict_2
   # binary file open using filepointer in append mode
   fp = open('Newfile', 'ab')
   # source, destination
   pk.dump(db, fp)
   fp.close()
def displayData():
   # binary file open using filepointer in read mode
   fp = open('Newfile', 'rb')
   db = pk.load(fp)
   for i in db:
      print(i, '=>', db[i])
   fp.close()
if __name__ == '__main__':
   learnData()
   displayData()

ผลลัพธ์

dict_1 = {'tutorial':'point','Python':'3.x'}
dict_2 = {'Data structure':'dictionary','pickling':'serialization'}

บทสรุป

ในบทความนี้ เราเรียนรู้ที่จะดองและแกะใน Python 3.x หรือรุ่นก่อนหน้าโดยใช้โมดูลดองในตัว