使用 pickle 模块存取 dict
Python 自带一个存取 dict 到二进制文件的工具 pickle, 支持数值型的 key (numpy.savez 和 numpy.savez_compressed 只支持字符串作为 key).
用法:
1 | import pickle |
以下示例特地使用了数值型的 key:
1 | import pickle |
注意 pickle.load()
返回的类型是 dict, 但
numpy.load()
读取 '*.npz' 文件所返回是一个可以像 dict
一样使用 key 来索引数据的 numpy.lib.npyio.NpzFile
对象.
'*.p' 文件的大小和非压缩的 '*.npz' (numpy.savez()
) 一致,
然而压缩过的 '*.npz' (numpy.savez_compressed()
)
显然占用空间更小, 因此在方便的情况下 (例如 key 是字符串,
读取后直接操作数据而不需要得到一个 dict), 推荐优先使用 numpy.
如果要存入上述示例中同样的数据到 '*.npz' 格式, 需要转换 key 的类型
(读取时也需要使用字符串型的 key):
1 | str(key):value for key, value in a.items()} a = { |
其他数据存取教程: