繁体   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