栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:为什么要泡菜?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:为什么要泡菜?

Pickle是不安全的,因为它通过调用任意函数来构造任意Python对象。但是,这也使它可以序列化几乎所有Python对象,而无需任何样板甚至白名单/黑名单(在常见情况下)。对于某些用例,这是非常理想的:

  • 快速简便的序列化,例如用于暂停和恢复长时间运行但简单的脚本。这里的任何问题都无关紧要,您只想按原样转储程序的状态并在以后加载它。
  • 将任意Python数据发送到其他进程或计算机,如中所示
    multiprocessing
    。安全问题 可能 适用(但大多数情况下没有),普遍性是绝对必要的,并且人们不必阅读它。

在其他情况下,没有任何缺点足以证明将您的内容映射到JSON或其他限制性数据模型的合理性。也许您不希望需要人类可读性/安全性/跨语言兼容性,或者您可能不需要。请记住,您将不需要它。使用JSON是正确的选择,但是正确并不总是那么好。

您会注意到,我完全忽略了“缓慢”的缺点。那是因为它在某种程度上具有误导性:对于完全适合JSON模型(字符串,数字,数组,映射)的数据,Pickle的速度确实确实较慢,但是如果您的数据如此,则无论如何,您都应使用JSON。如果您的数据不太可能(这样),则还需要考虑将对象转换为JSON数据所需的自定义代码,以及将JSON数据重新转换为您所需的自定义代码对象。它增加了工程工作量和运行时开销,必须根据具体情况进行量化。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638682.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号