TypeError: 'KeysView' object does not support indexing
TypeError: 'KeysView' object does not support indexing
我试图直接在 python 中分析 HDF5 文件中的数据时遇到此错误。此代码在我的 linux machine 上运行良好,但我在 Spyder3 中尝试在我的 mac 上编译相同的脚本时遇到此错误。我尝试使用 mac 的原因是因为我不确定如何在 linux 终端上编写和 运行 脚本。
def dataProcessing(datafile):
import h5py
import numpy as np
import matplotlib.pyplot as plt
import pylab
f = h5py.File(datafile, 'r')
#print(f)
#print("Keys: %s" % f.keys())
groupKeyVal = f.keys()[4]
rawData = list(f[groupKeyVal])
rawDataMat = np.matrix(rawData)
for i in range(0,len(rawDataMat[:,0])):
fig = rawDataMat[i,:]
wav = np.squeeze(np.asarray(fig))
plt.plot(wav)
plt.show()
在 Python3 中,字典 keys
returns 一个 'view',不是可索引列表。
In [80]: d={'a':1, 'b':2}
In [81]: d.keys()
Out[81]: dict_keys(['a', 'b'])
In [82]: d.keys()[0]
....
TypeError: 'dict_keys' object does not support indexing
类似地,对于来自 h5
个组的键的字典
In [86]: f = h5py.File('data.h5')
In [87]: f.keys()
Out[87]: KeysView(<HDF5 file "data.h5" (mode r+)>)
In [88]: f.keys()[0]
....
TypeError: 'KeysView' object does not support indexing
In [89]: list(f.keys())
Out[89]: ['dset', 'dset1', 'vset']
In [90]: list(f.keys())[1]
Out[90]: 'dset1'
添加 list
有点麻烦,但它可以使键上的迭代更高效。
In [92]: for k in f.keys():print(f[k])
<HDF5 dataset "dset": shape (3, 5), type "<f8">
<HDF5 dataset "dset1": shape (2, 3, 10), type "<f8">
<HDF5 dataset "vset": shape (100,), type "|O">
我试图直接在 python 中分析 HDF5 文件中的数据时遇到此错误。此代码在我的 linux machine 上运行良好,但我在 Spyder3 中尝试在我的 mac 上编译相同的脚本时遇到此错误。我尝试使用 mac 的原因是因为我不确定如何在 linux 终端上编写和 运行 脚本。
def dataProcessing(datafile):
import h5py
import numpy as np
import matplotlib.pyplot as plt
import pylab
f = h5py.File(datafile, 'r')
#print(f)
#print("Keys: %s" % f.keys())
groupKeyVal = f.keys()[4]
rawData = list(f[groupKeyVal])
rawDataMat = np.matrix(rawData)
for i in range(0,len(rawDataMat[:,0])):
fig = rawDataMat[i,:]
wav = np.squeeze(np.asarray(fig))
plt.plot(wav)
plt.show()
在 Python3 中,字典 keys
returns 一个 'view',不是可索引列表。
In [80]: d={'a':1, 'b':2}
In [81]: d.keys()
Out[81]: dict_keys(['a', 'b'])
In [82]: d.keys()[0]
....
TypeError: 'dict_keys' object does not support indexing
类似地,对于来自 h5
个组的键的字典
In [86]: f = h5py.File('data.h5')
In [87]: f.keys()
Out[87]: KeysView(<HDF5 file "data.h5" (mode r+)>)
In [88]: f.keys()[0]
....
TypeError: 'KeysView' object does not support indexing
In [89]: list(f.keys())
Out[89]: ['dset', 'dset1', 'vset']
In [90]: list(f.keys())[1]
Out[90]: 'dset1'
添加 list
有点麻烦,但它可以使键上的迭代更高效。
In [92]: for k in f.keys():print(f[k])
<HDF5 dataset "dset": shape (3, 5), type "<f8">
<HDF5 dataset "dset1": shape (2, 3, 10), type "<f8">
<HDF5 dataset "vset": shape (100,), type "|O">