我看过pickle http://en.wikipedia.org/wiki/Pickle_%28Python%29文档,但我不明白 pickle 在哪里有用。
pickle 的一些常见用例有哪些?
我遇到过的一些用途:
1)将程序的状态数据保存到磁盘,以便重新启动时可以从中断处继续执行(持久性)
2)在多核或分布式系统中通过TCP连接发送python数据(编组)
3)将python对象存储在数据库中
4)将任意Python对象转换为字符串,以便它可以用作字典键(例如用于缓存和记忆)。
最后一个存在一些问题 - 两个相同的对象可以被 pickle 并导致不同的字符串 - 或者甚至同一对象被 pickle 两次可以有不同的表示。这是因为 pickle 可以包含引用计数信息。
为了强调 @lunaryorn 的评论 - 你永远不应该从不受信任的来源中解封字符串,因为精心制作的 pickle 可以在你的系统上执行任意代码。例如参见https://blog.nelhage.com/2011/03/exploiting-pickle/ https://blog.nelhage.com/2011/03/exploiting-pickle/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)