я изменил мой код:Что вызывает объект 'int', не имеет атрибута 'has_key'?
print '\n'
search = raw_input("For which account are you searching: ")
f = shelve.open("passwords.dat")
for line in f:
if search in f:
passwrd = f[search]
entry = passwrd[0]
f.close()
print line
print '\n'
print "I'm sorry we could not find any account related to " + search
print '\n'
f.close()
И теперь он не будет принимать никаких правильных счетов и отдает эту ошибку:
'int' object has no attribute 'has_key'
Почему я теперь получаю это сообщение?
File "E:\password.py", line 98, in program_start
find_account()
File "E:\password.py", line 36, in find_account
if search in f:
File "C:\Python24\lib\shelve.py", line 107, in __contains__
return self.dict.has_key(key)
AttributeError: 'int' object has no attribute 'has_key'
Какая линия является линией 98? –
'f' - это указатель файла. Эта строка неверна: 'passwrd = f [search]'. Не уверен, что вы пытаетесь сделать, но вы не можете индексировать «f» таким образом. – RobertB
@RobertB f является https://docs.python.org/2/library/shelve.html, а не указателем на файл – user2085282