如何在 Python 中将对象数组保存到文件中
Posted
技术标签:
【中文标题】如何在 Python 中将对象数组保存到文件中【英文标题】:How to save an array of objects to a file in Python 【发布时间】:2019-10-06 21:16:25 【问题描述】:我知道如何使用 numpy.save 和 numpy.savez 将简单数据数组(如浮点类型值)保存到文件中。
我也知道如何使用pickle 模块将单个对象保存到文件中,虽然我还没有测试过。
问题是:如何将对象数组保存(和加载)到文件中?我可以结合上面公开的两种方法来实现这一点吗?有没有更好的办法?
【问题讨论】:
***.com/a/32850511/3923163 该对象数组的形状和数据类型是什么?你试过np.save
吗?要加载它,您可能需要使用allow_pickle
参数。阅读save
和load
的文档。
您可以创建对象列表。列表是单个对象。您知道如何使用 pickle 保存单个对象 :)
@hpaulj 形状将是 (-1, 3) (三元组数组),我忘记了三元组的每个元素都是不同的类型(A 类、整数、B 类),所以我认为我不应该使用 numpy 数组,而应该使用普通的 python 列表。
@sanyash 没有考虑到这一点。我想我可以将我的数据排序为一个三元组(列表)列表,其中每个元素都是一个对象。这样整个数据结构将是一个 Python 列表,我应该能够使用 pickle 模块保存它。我会尝试并用我的结果更新问题。提前致谢! :)
【参考方案1】:
如果您知道如何腌制单个对象,要腌制一定数量的对象,您可以创建一个包含所有这些对象的结构(list
、set
、dict
,例如,将这些对象作为值,或者你自己的类,它以某种方式包含它们),这个结构将是一个可以腌制的对象。
【讨论】:
以上是关于如何在 Python 中将对象数组保存到文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 3 中将类对象列表“保存”到我的程序中?
如何使用node.js中的循环将表单数据保存为对象和对象数组到mongodb?
在javascript中将对象数组复制到另一个数组而没有对象引用(深拷贝)
如何在 Swift 中归档和取消归档自定义对象?或者如何在 Swift 中将自定义对象保存到 NSUserDefaults?
如何在 CGAL 中将三角测量对象(Constrained_Delaunay_triangulation_2)保存到文件(vtk、vtu、msh 等)