Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python——将对象保存在一个二进制文件中?_Python - Fatal编程技术网

Python——将对象保存在一个二进制文件中?

Python——将对象保存在一个二进制文件中?,python,Python,我有一个python类,它包含许多对象——一些是数据结构(列表,dicts等),一些是其他类的处理程序(也包含其他数据结构…) 与其使用pickle保存整个类及其内容,我想知道是否有方法序列化多个所需对象的数据,并将它们(仅它们)保存在二进制文件中 例如,假设我有以下两个python对象: myList = [1, 2, 3, 4, 5] myDict = {'a' : 14, 'b' : 5, 'c' : 65} 将这两个python对象的内容保存在二进制文件中的最佳方法是什么?理想情况下,

我有一个
python
类,它包含许多对象——一些是数据结构(
列表
dicts
等),一些是其他类的处理程序(也包含其他数据结构…)

与其使用
pickle
保存整个类及其内容,我想知道是否有方法
序列化多个所需对象的数据,并将它们(仅它们)保存在二进制文件中

例如,假设我有以下两个python对象:

myList = [1, 2, 3, 4, 5]
myDict = {'a' : 14, 'b' : 5, 'c' : 65}

将这两个
python
对象的内容保存在二进制文件中的最佳方法是什么?理想情况下,我希望将这两个对象保存在同一个二进制文件中,并能够稍后加载数据。

然后为它们创建一个容器类(或命名的tuple,或只是一个tuple,随便什么),并对其进行pickle(或修改原始类,以便只对需要的部分进行pickle)<代码>pickle
是序列化,它是标准的Python机制。因此,除非您需要(例如)不同语言之间的更多互操作性,否则请坚持使用它。

然后为它们创建一个容器类(或命名的tuple,或只是一个tuple,随便什么),并对其进行pickle(或修改原始类,以便只对您想要的部分进行pickle)<代码>pickle是序列化,它是标准的Python机制。所以,除非你需要在不同语言之间进行更多的互操作性,否则,你可以尝试使用该模块来构建一些东西,但它不支持保存列表或DICT,只要我知道,如果它们和列表或DICT一样简单,那么考虑JSON,如AGF中所示。我会看一下……你可以试着用这个模块来构建一些东西,但它不支持保存列表或DICT。据我所知,如果它们真的像列表或DICT一样简单,请考虑JSON,如AGF中所示。谢谢,我会看一看…谢谢。
pickle
是否以经济的方式保存数据?(我希望处理大对象)@user3262424:使用协议2,它是目前最紧凑/高效的格式。在Python 3中,协议3的效率更高。通常,将
-1
作为协议参数传递将始终使用最新的协议(但可能不向后兼容)。@ThomasK:Ah,是的。我仍然默认使用Python 2。如果数据被持久化很长一段时间,那么最好明确指定协议。我开始更多地使用Python 3,尽管我的手指仍然倾向于打印x。谢谢。
pickle
是否以经济的方式保存数据?(我希望处理大对象)@user3262424:使用协议2,它是目前最紧凑/高效的格式。在Python 3中,协议3的效率更高。通常,将
-1
作为协议参数传递将始终使用最新的协议(但可能不向后兼容)。@ThomasK:Ah,是的。我仍然默认使用Python 2。如果数据被持久化很长一段时间,那么最好明确指定协议。我开始更多地使用Python 3,尽管我的手指仍然倾向于打印x。