什么是重建序列化对象的pythonic方法

时间:2013-09-09 09:35:23

标签: python serialization hdf5 pytables

我使用python的次数越多,我就越想用pythonic方式来做,即尽量避免isinstance查询等。我正在开发一个用于数值模拟的科学参数探索的框架。

我使用两个严格的约束:首先,我需要能够重复我第一次运行的方式存储到磁盘的特定模拟。其次,数据应该是hdf5 / pytables格式的可读和可读。

这两个概念都有点对立。一旦我将东西作为pytables数据存储,一些信息就会丢失。例如,在重新加载python之后,int变为numpy.int64。如果你想重新运行数值模拟,这可能会有问题,因为有些情况下,变量与int的乘法工作正常但在与numpy.int64一起使用时会中断。例如,如果您使用尖峰神经网络模拟器BRIAN,就是这种情况。

所以一个直截了当的答案就是简单地腌制所有东西,然后像往常一样把它取回来。然而,这对于可读的hdf5数组或表数据的想法并不适用。

所以我想到的是将原始数据格式作为hdf5属性存储到相应的表或数组中,并使用此信息重建原始数据。首先,这是一个好主意,其次,最蟒蛇的方式是什么?

例如,这个怎么样:

original_class_name = data.__class__.__name__

# do the storage of data and the original_class_name

{...}

# load the hdf5data and reconstruct it

reconstructed_data = eval(original_class_name+'(hdf5data)')

对我而言,这似乎太过于苛刻。

0 个答案:

没有答案