【问题标题】:Efficient Data Serialization format for list of arrays in PythonPython中数组列表的高效数据序列化格式
【发布时间】:2020-07-14 17:47:17
【问题描述】:
我在 Python 中有一个很大的数组列表(数据类型 float32,有几个 int 实例),这些数组将通过 UTF-8 编码进行序列化并保存在服务器上。但是我遇到了保存文件的大小超出存储限制的问题。
服务器可以处理的可用序列化格式有:字符串、字节、JSON 和 XML。以下哪种数据格式最适合保存数据结构?
【问题讨论】:
标签:
python
database
serialization
data-serialization
【解决方案1】:
我认为您还应该探索使用 h5 文件。我只是诚实地将列表列表转换为 numpy 数组,然后将 numpy 数组保存到 h5 文件中。
你可以像这样保存:->
import numpy as np
import h5py
nparr = np.asanyarray(yourArr)
h5f = h5py.File('listData.h5', 'w')
h5f.create_dataset('dataset_1', data=nparr)
h5f.close()
你可以像这样加载:
h5f = h5py.File('listData.h5','r')
loadData = h5f['dataset_1'][:]
h5f.close()
H5 文件针对存储类似矩阵的数据进行了优化。
如果你需要一些帮助脚本,试试我这里做的一些(无耻插件):
https://github.com/ss4328/h5_manager_scripts
如果没有 h5 文件。你的挖掘,JSON是最好的实现。大量免费库来生成/使用数据。在网络上非常时尚,更不用说它们也是人类可读的。 XML 有点过时了。