我正在尝试将字符串的可变长度列表存储到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表示实际小于符号 如何解决此问题。
您正在读取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编码!