簡體   English   中英

Pickle Python序列化

[英]Pickle Python Serialization

用外行的話來說,什么是“序列化”,為什么我需要它? 我閱讀了Wikipedia條目,但仍然不明白。 為什么需要將數據轉換為位序列以將其存儲在文件中? 我特別關心使用Python的pickle模塊進行序列化。

感謝您的時間!

您可以保存(特定對象的)編程狀態。 假設您有一個可以運行數小時甚至數天的程序。 使用pickle,您可以保存計算狀態,終止程序並在以后恢復計算。

您甚至可以將保存的對象通過電子郵件發送給其他人,然后其他人可以繼續計算或查看結果。

有時我會挑剔用戶的偏好,或者(一次測驗)對上一次問什么問題以及給出什么答案感到厭煩。

讓我嘗試用一​​些例子來解釋...

您需要將字典傳遞給不在python環境中使用的其他python進程(可能是其他項目或在其他計算機上)...

somelist = {1:1,2:2,3:3}

您如何將該字典傳遞給該過程? 您無法將其轉換為字符串,即使這樣做也無法將其轉換回其原始形式...

如果您腌這本字典,它將給您

dumps({1: 1, 2: 2, 3: 3})
'(dp1\nI1\nI1\nsI2\nI2\nsI3\nI3\ns.'

它具有類似字符串的結構...因此您可以通過郵寄或其他方式發送此消息...接收者可以將其解開以獲取原始對象...

loads('(dp1\nI1\nI1\nsI2\nI2\nsI3\nI3\ns.')
{1: 1, 2: 2, 3: 3}

一個程序會產生一些統計信息,但不會太多,因此使用DB是過大的。

例如,對程序進行基准測試以選擇最佳算法。

完成后會繪制一個圖形。 現在您可能不喜歡圖形的繪制方式。 您對結果進行腌制,然后在另一個腳本中進行腌制(可能在運行了幾次后續基准測試之后),然后根據需要微調可視化效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM