【发布时间】:2021-12-31 10:32:49
【问题描述】:
我有一个以下格式的 hdf5 文件。 {...} 代表组,有些有子组。
使用以下链接下载文件
https://drive.google.com/file/d/1f6a0XEPGE4aSEKODVbJ1Q9AUw24Bt9_2/view?usp=sharing
{'A': np.array(...),
'B':np.array(...),
'C':{
'A': np.array(...),
'B': {...},
'C': np.array(...),
'D': np.array(...)},
'D':{
'A': {...},
'B': {...},
'C': {...},
'D': {...}}
}
我正在尝试使用以下代码创建字典,但它的格式不正确。有人可以帮忙吗?
import h5py
import numpy as np
driv
def read_hdf5_file(file):
for key,val in file.items():
if type(val) == h5py._hl.dataset.Dataset:
d[key] = np.array(val)
# print(key,np.array(val))
else:
d[key] = read_hdf5_file(val)
return d
if __name__=='__main__':
d = dict()
file = h5py.File("data.hdf5")
read_hdf5_file(file)
【问题讨论】:
-
“格式不正确”是什么意思?它是什么格式,应该是什么格式?
-
if type(val) == h5py._hl.dataset.Dataset:一般来说,更喜欢使用isinstance:if isinstance(val, h5py._hl.dataset.Dataset):。如果val是Dataset 的子类,这也将评估为真,而不是type的第一个变体。 (当然,除非你不想要子类。) -
@mkrieger1 输出字典的格式与文件的格式不正确。
-
我怀疑我需要以不同的方式使用递归
-
请勿发布代码、数据、错误消息等的图像 - 复制或在问题中键入文本。请保留将图像用于图表或演示渲染错误,这些无法通过文本准确描述的事情。有关更多信息,请参阅元常见问题解答条目Why not upload images of code/errors when asking a question?