คำถามติดแท็ก pickle

โมดูลการจัดลำดับวัตถุสำหรับ Python ใช้แท็กนี้ร่วมกับแท็ก Python สำหรับคำถามที่เกี่ยวข้องกับการจัดเก็บหรือโหลดวัตถุด้วย Pickle

12
มีวิธีง่ายๆในการดองฟังก์ชัน python (หรือทำให้รหัสเป็นลำดับ) หรือไม่?
ฉันกำลังพยายามถ่ายโอนฟังก์ชันผ่านการเชื่อมต่อเครือข่าย (โดยใช้ asyncore) มีวิธีง่ายๆในการทำให้เป็นอนุกรมของฟังก์ชัน python (อย่างน้อยที่สุดในกรณีนี้จะไม่มีผลข้างเคียง) สำหรับการถ่ายโอนเช่นนี้หรือไม่? ฉันอยากจะมีฟังก์ชั่นที่คล้ายกับสิ่งเหล่านี้: def transmit(func): obj = pickle.dumps(func) [send obj across the network] def receive(): [receive obj from the network] func = pickle.loads(s) func()
103 python  function  pickle 

2
ValueError: โปรโตคอลดองที่ไม่รองรับ: 3, python2 pickle ไม่สามารถโหลดไฟล์ที่ทิ้งโดย python 3 pickle ได้หรือไม่
ฉันใช้ pickle เพื่อถ่ายโอนไฟล์บน python 3 และฉันใช้ pickle เพื่อโหลดไฟล์บน python 2 ValueError จะปรากฏขึ้น ดังนั้น python 2 pickle ไม่สามารถโหลดไฟล์ที่ทิ้งโดย python 3 pickle? ถ้าฉันต้องการ? วิธีการทำ?

2
ข้อผิดพลาด Python pickle: UnicodeDecodeError
ฉันกำลังพยายามจัดประเภทข้อความโดยใช้ Textblob ฉันกำลังฝึกโมเดลเป็นครั้งแรกและจัดลำดับโดยใช้ของดองดังที่แสดงด้านล่าง import pickle from textblob.classifiers import NaiveBayesClassifier with open('sample.csv', 'r') as fp: cl = NaiveBayesClassifier(fp, format="csv") f = open('sample_classifier.pickle', 'wb') pickle.dump(cl, f) f.close() และเมื่อฉันพยายามเรียกใช้ไฟล์นี้: import pickle f = open('sample_classifier.pickle', encoding="utf8") cl = pickle.load(f) f.close() ฉันได้รับข้อผิดพลาดนี้: UnicodeDecodeError: ตัวแปลงสัญญาณ 'utf-8' ไม่สามารถถอดรหัสไบต์ 0x80 ในตำแหน่ง 0: ไบต์เริ่มต้นไม่ถูกต้อง ต่อไปนี้เป็นเนื้อหาของ sample.csv ของฉัน: SQL ของฉันทำงานไม่ถูกต้องเลย …

5
จะอ่านไฟล์ดองได้อย่างไร?
ฉันสร้างข้อมูลบางส่วนและเก็บไว้หลายครั้งดังนี้: with open('filename', 'a') as f: pickle.dump(data, f) ทุกครั้งที่ขนาดของไฟล์เพิ่มขึ้น แต่เมื่อเปิดไฟล์ with open('filename', 'rb') as f: x = pickle.load(f) ฉันสามารถดูได้เฉพาะข้อมูลจากครั้งล่าสุด ฉันจะอ่านไฟล์อย่างถูกต้องได้อย่างไร?
91 python  pickle 

4
การทำให้เป็นอนุกรม Python - ทำไมต้องดอง?
ฉันเข้าใจว่าการดอง Python เป็นวิธี 'จัดเก็บ' Python Object ในลักษณะที่เคารพการเขียนโปรแกรม Object ซึ่งแตกต่างจากเอาต์พุตที่เขียนในไฟล์ txt หรือ DB คุณมีรายละเอียดเพิ่มเติมหรือข้อมูลอ้างอิงในประเด็นต่อไปนี้: วัตถุดองถูกเก็บไว้ที่ไหน? เหตุใดการดองจึงรักษาการแสดงวัตถุมากกว่าการจัดเก็บใน DB ฉันสามารถดึงวัตถุดองจากเซสชัน Python shell หนึ่งไปยังอีกเซสชันหนึ่งได้หรือไม่ คุณมีตัวอย่างที่สำคัญเมื่อการทำให้เป็นอนุกรมมีประโยชน์หรือไม่? การทำให้เป็นอนุกรมกับดองหมายถึง 'การบีบอัดข้อมูล' หรือไม่? กล่าวอีกนัยหนึ่งฉันกำลังมองหาเอกสารเกี่ยวกับการดอง - Python.doc อธิบายวิธีการใช้ดอง แต่ดูเหมือนจะไม่ได้เจาะลึกลงไปในรายละเอียดเกี่ยวกับการใช้งานและความจำเป็นในการทำให้เป็นอนุกรม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.