[英]How can I correct the error ' AttributeError: 'dict_keys' object has no attribute 'remove' '?
[英]How can I correct the follow error ' AttributeError: 'dict_keys' object has no attribute 'remove' '?
我試圖按照“ https://github.com/EBjerrum/Deep-Chemometrics/blob/master/Deep_Chemometrics_with_data_augmentation.py.ipynb ”的示例進行操作,但是在執行代碼的第一部分時,我立即得到了錯誤。
#code
import scipy.io as sio
import numpy as np
def get_xY(filename, maxx=600):
#sio.whosmat(filename)
matcontents = sio.loadmat(filename)
keys = matcontents.keys()
for key in list(keys):
if key[0] == '_':
keys.remove(key)
keys.sort()
d = {}
for key in keys:
data = matcontents[key][0][0]
if key[-1] == "Y":
Ydata = data[5]
d[key] = Ydata
else:
xdata = data[5][:,:maxx]
d[key] = xdata
d["axisscale"]= data[7][1][0][0][:maxx].astype(np.float)
return d
filename = 'Dataset/nir_shootout_2002.mat'
dataset = get_xY(filename)
' AttributeError: 'dict_keys' 對象沒有屬性 'remove' '
似乎將keys.remove(key)
更改為del keys[key]
對他們有用。 (來自評論)
當您加載 matlab 文件和期望字典但找不到字典的代碼時,您會遇到此問題。
具體錯誤是'dict_keys' object has no attribute 'remove'
。 這就是我知道 python 沒有找到字典的方式。
你的代碼:
matcontents = sio.loadmat(filename)
keys = matcontents.keys()
將其更改為:
matcontents = sio.loadmat(filename)
print('matcontents',type(matcontents),matcontents)
keys = matcontents.keys()
print('keys',type(keys),keys)
確保數據按預期加載。
此頁面還提到必須以不同方式導入較新版本的 matlab 文件 (7.3)。 在 Python 中讀取 .mat 文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.