小编典典

从Python将字符串列表存储到HDF5数据集

python

我正在尝试将字符串的可变长度列表存储到HDF5数据集。该代码是

import h5py
h5File=h5py.File('xxx.h5','w')
strList=['asas','asas','asas']  
h5File.create_dataset('xxx',(len(strList),1),'S10',strList)
h5File.flush() 
h5File.Close()

我收到一条错误消息,指出“ TypeError:dtype的转换路径:dtype(’&lt U3’)”,其中&lt表示实际小于符号
如何解决此问题。


阅读 215

收藏
2021-01-20

共1个答案

小编典典

您正在读取Unicode字符串,但将数据类型指定为ASCII。根据h5py
Wiki
,h5py当前不支持此转换。

您需要将字符串编码为h5py处理的格式:

asciiList = [n.encode("ascii", "ignore") for n in strList]
h5File.create_dataset('xxx', (len(asciiList),1),'S10', asciiList)

注意:并非所有以UTF-8编码的内容都可以以ASCII编码!

2021-01-20