【发布时间】:2022-01-18 20:40:09
【问题描述】:
我在python中有混合数据,包括
- 一些字典列表和
- 一些 numpy 数组。
我可以将第一部分保存为 json,将第二部分保存为二进制 npz。但是我应该更喜欢哪种格式将它们都保存在一个文件中?
说清楚。
我有这样的事情:
import numpy as np
params = {
"param1": 1,
"param2": "abcd",
"param3": [1, 2, 3],
"param4": {
"subparam1": "e",
"subparam2": 3
}
}
data = np.random.uniform(0, 10, [3, 3])
并尝试将params 和data 保存到文件中
def save(params, params_path, data, data_path):
with open(params_path, 'w') as f:
json.dump(params, f, indent=4)
np.savez(data_path, data=data)
我现在有两个文件,但我只想要一个。
我可以这样做:
def save_union(params, data, out_path):
data_npz = io.BytesIO()
np.savez_compressed(data_npz, data=data)
union_data = {
"params": params,
"data": base64.b64encode(data_npz.getvalue()).decode("utf-8")
}
with open(out_path, 'w') as f:
json.dump(union_data, f, indent=4)
但现在我有一个大文件,因为data 使用 base64 编码。
【问题讨论】:
-
“字典列表”是什么意思?
-
某事:list[dict[str, Any]]