13 กรกฎาคม 2559

Published 7/13/2559 by with 0 comment

ไลบรารี pickle ในภาษา Python

ไลบรารี pickle เป็นโพรโทคอไบนารี (binary protocols) สำหรับ serializing (แปลงวัตถุให้กลายเป็นสายข้อมูลในรูปแบบบิต) และ de-serializing (แปลงย้อนกลับมาเป็นวัตถุ) ของโครงสร้างวัตถุ Python

ปัญหาของไลบรารี pickle


ไลบรารี pickle มีปัญหาที่ทำงานได้ช้ากว่า json และมีปัญหาเรื่องความปลอดภัย ไม่ควรนำไปรันใช้งานจริง แนะนำให้ใช้ json แทน

อ่านเพิ่มเติมได้ที่ http://www.benfrederickson.com/dont-pickle-your-data/




การเรียกใช้งานไลบรารี pickle



[python]import pickle[/python]

ความแตกต่างไลบรารี pickle ระหว่าง Python 2 กับ Python 3


ใน Python 2 มีการ import เหมือนกัน แต่ได้มีโมดูลหนึ่งขึ้นมาคือ cPickle ซึ่งเป็นโมดูล Pickle ที่ถูกเขียนด้วยภาษา C มีการเรียกใช้งานคล้าย ๆ กัน แต่ใน Python 3 โมดูลนี้ได้ถูกรวมเข้ากับโมดูล Pickle แล้ว ยกเว้น Python 2

[python]import cPickle as pickle[/python]

เก็บข้อมูลและอ่านข้อมูลด้วยไลบรารี pickle


เก็บข้อมูล ได้ด้วยคำสั่ง

[python]pickle.dump(วัตถุของข้อมูล,open("ชื่อไฟล์ที่ต้องการบันทึก.นามสกุล","wb"))[/python]

อ่านไฟล์ ได้ด้วยคำสั่ง

[python]pickle.load(open("ชื่อไฟล์ที่บันทึกข้อมูลไว้.นามสกุล", "rb" ) )[/python]

ตัวอย่างการใช้งานไลบรารี pickle



[python]
import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
pickle.dump(a, handle)

with open('filename.pickle', 'rb') as handle:
b = pickle.load(handle)

print(a == b)
[/python]

ผลลัพธ์

[python]True[/python]

อ่านเอกสารการใช้งานได้ที่ https://docs.python.org/3/library/pickle.html

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)