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。