[英]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.