有没有pickle的替代品 - 保存一个字典(Python)

4

我需要将一个包含字符串、整数和字典的字典保存到文件中。

我已经尝试过自己实现,但是对用户来说不够美观,也不易用。

我知道pickle模块可以实现,但是据我所知,它并不安全。因为如果有人替换了文件,而我(或其他人)运行使用了这个“被替换的文件”的程序,可能会产生一些问题。 这很明显是不安全的。

我想知道是否存在另一种函数或导入的工具可以实现这个功能。


3
字典里有什么? - Gareth Latty
3个回答

5

当第三方不可信时,使用Pickle传输是不安全的。本地文件可以,如果有东西可以替换您文件系统上的文件,则存在不同的问题。

话虽如此,如果您的字典仅包含字符串键,而值仅为Python列表、数字、字符串或其他字典,则可以使用JSON,通过json模块进行。


0

假设您的字典仅包含基本数据类型,那么正常的答案是json,这是一种流行且定义良好的语言,非常适合这种情况。

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


0

JSON不太符合Python的方式,原因如下:

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

尝试使用sPickle替代。


3
你能否至少在你的帖子中添加一个免责声明,说明这是你自己的项目? - Martijn Pieters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接