AttributeError: 'contactObject' object has no attribute
AttributeError: 'contactObject' object has no attribute
这是我的功能:
def get_content(self):
full_results = []
for res in self._get_data(): #function that returns suds object
final_dict = dict(res)
final_dict.pop('readOnlyContactData', None)
if res["readOnlyContactData"] is not None:
readOnlyContactData_dict = dict(res["readOnlyContactData"])
final_dict.update(readOnlyContactData_dict)
full_results.append(final_dict)
return full_results
但是在运行它时我得到:
INFO - if res["readOnlyContactData"] is not None:
INFO - File "/home/ubuntu/.local/lib/python3.6/site-packages/suds/sudsobject.py", line 154, in __getitem__
INFO - return getattr(self, name)
INFO - AttributeError: 'contactObject' object has no attribute 'readOnlyContactData'
INFO - Command exited with return code 1
我不明白为什么它会失败 if 条件假设检查 res["readOnlyContactData"]
是否存在。如果它确实处理了它,如果没有则忽略它。
为什么这个条件不成立?
在 python 中,使用 variable['key']
语法在内部调用 __getitem__('key')
来检索正确的元素。在您的情况下,错误表明 __getitem__()
内部调用 getattr()
,通常用于检索 class 成员或实例变量。
File "/path/to/sudsobject.py", line 154, in __getitem__
return getattr(self, name)
AttributeError: 'contactObject' object has no attribute 'readOnlyContactData'
因此,根据您提供的信息,调用 res["readOnlyContactData"]
似乎等同于调用 res.readOnlyContactData
。由于在您的对象(contactObject
类型)中找不到 readOnlyContactData
属性,您会收到此错误。
尝试以下语句来检查您的对象是否有您要查找的成员:
>>> # this has to be implemented in your class
>>> "readOnlyContactData" in res
或
>>> hasattr(res, "readOnlyContactData")
if 条件检查 res["readOnlyContactData"]
中的元素是否为 None
。因此,如果 res
没有任何名为 "readOnlyContactData"
Python returns 的索引,则异常 Object has no attribute
。你应该尝试 hasattr(res, "readOnlyContactData")
而不是 if 语句
这是我的功能:
def get_content(self):
full_results = []
for res in self._get_data(): #function that returns suds object
final_dict = dict(res)
final_dict.pop('readOnlyContactData', None)
if res["readOnlyContactData"] is not None:
readOnlyContactData_dict = dict(res["readOnlyContactData"])
final_dict.update(readOnlyContactData_dict)
full_results.append(final_dict)
return full_results
但是在运行它时我得到:
INFO - if res["readOnlyContactData"] is not None:
INFO - File "/home/ubuntu/.local/lib/python3.6/site-packages/suds/sudsobject.py", line 154, in __getitem__
INFO - return getattr(self, name)
INFO - AttributeError: 'contactObject' object has no attribute 'readOnlyContactData'
INFO - Command exited with return code 1
我不明白为什么它会失败 if 条件假设检查 res["readOnlyContactData"]
是否存在。如果它确实处理了它,如果没有则忽略它。
为什么这个条件不成立?
在 python 中,使用 variable['key']
语法在内部调用 __getitem__('key')
来检索正确的元素。在您的情况下,错误表明 __getitem__()
内部调用 getattr()
,通常用于检索 class 成员或实例变量。
File "/path/to/sudsobject.py", line 154, in __getitem__
return getattr(self, name)
AttributeError: 'contactObject' object has no attribute 'readOnlyContactData'
因此,根据您提供的信息,调用 res["readOnlyContactData"]
似乎等同于调用 res.readOnlyContactData
。由于在您的对象(contactObject
类型)中找不到 readOnlyContactData
属性,您会收到此错误。
尝试以下语句来检查您的对象是否有您要查找的成员:
>>> # this has to be implemented in your class
>>> "readOnlyContactData" in res
或
>>> hasattr(res, "readOnlyContactData")
if 条件检查 res["readOnlyContactData"]
中的元素是否为 None
。因此,如果 res
没有任何名为 "readOnlyContactData"
Python returns 的索引,则异常 Object has no attribute
。你应该尝试 hasattr(res, "readOnlyContactData")