有没有pickle的替代品 - 保存字典(python)

Posted

技术标签:

【中文标题】有没有pickle的替代品 - 保存字典(python)【英文标题】:Is there an alternative to pickle - save a dictionary (python) 【发布时间】:2013-05-14 14:48:33 【问题描述】:

我需要将字典保存到文件中,字典中有字符串、整数和字典。

我自己做的,它对用户来说很漂亮。

我知道pickle,但我知道使用它并不安全,因为如果有人替换文件并且我(或其他人)将运行使用替换的文件文件,它将运行并可能做一些事情。 只是不安全。

是否有其他功能或导入的东西可以做到这一点。

【问题讨论】:

字典里有什么? 【参考方案1】:

由不受信任的第三者转移时,Pickle 是不安全的。本地文件很好,如果有东西可以替换文件系统上的文件,那么你就有不同的问题了。

也就是说,如果您的字典只包含字符串键,而值只是 Python 列表、数字、字符串或其他字典,则通过 json module 使用 JSON。

【讨论】:

【参考方案2】:

假设您的字典只包含基本数据类型,正常的答案是json,这是一种流行的、定义明确的语言。

如果您的字典包含更复杂的数据,您将不得不手动将其序列化,至少部分方式。

【讨论】:

【参考方案3】:

由于以下几个原因,JSON 并不完全是 Python 方式:

    它无法包装/解包所有 Python 数据类型:不支持集合或元组。 不够快,因为它需要处理文本数据和编码。

尝试改用sPickle。

【讨论】:

您能否至少在您的帖子中添加免责声明,说明这是您自己的项目?

以上是关于有没有pickle的替代品 - 保存字典(python)的主要内容,如果未能解决你的问题,请参考以下文章

python保存字典和读取字典pickle

Python列表/字典的保存与加载(pickle)

使用pickle将巨大的二元字典保存到文件

Python:使用Pickle保存字典

python中的pickle库

『Pickle』数据结构持久化模块_常用方法记录