问题描述
我有一个班级成员。如何访问遥感器温度的“值”?这是pyecobee模块对ECOBEE温控器的响应。
我尝试了thermostat_response.thermostatList
,但它给了我错误消息“ AttributeError:'EcobeeThermostatResponse'对象没有属性'thermostatList'”
我可以访问thermostat_response.page
和thermostat_response.status
,但不能访问thermostat_response.thermostatList
thermostat_response = EcobeeThermostatResponse(
page=Page(
page=1,pageSize=1,total=1,totalPages=1
),status=Status(
code=0,message=
),thermostatList=[
Thermostat(
alerts=None,modelNumber=athenaSmart,reminders=None,remoteSensors=[
RemoteSensor(
capability=[
RemoteSensorCapability(
id=1,type=temperature,value=717
),RemoteSensorCapability(
id=2,type=occupancy,value=true
)
],code=EDGJ,id=rs:100,inUse=False,name=bedroom,type=ecobee3_remote_sensor
),RemoteSensor(
capability=[
RemoteSensorCapability(
id=1,value=696
),type=humidity,value=62
),RemoteSensorCapability(
id=3,code=None,id=ei:0,inUse=True,name=Living Room,type=thermostat
)
],runtime=None,weather=None
)
]
)
这是EcobeeThermostatResponse类的定义
class EcobeeThermostatResponse(EcobeeStatusResponse):
__slots__ = ['_page','_thermostat_list']
attribute_name_map = {'page': 'page','thermostat_list': 'thermostatList','thermostatList': 'thermostat_list','status': 'status'}
attribute_type_map = {'page': 'Page','thermostat_list': 'List[Thermostat]','status': 'Status'}
def __init__(self,page,thermostat_list,status):
"""
Construct a EcobeeThermostatResponse instance
:param page: The page information for the response
:param thermostat_list: The list of thermostats returned by the request
:param status: The api response code
"""
self._page = page
self._thermostat_list = thermostat_list
EcobeeStatusResponse.__init__(self,status)
@property
def page(self):
"""
Gets the page attribute of this EcobeeThermostatResponse instance.
:return: The value of the page attribute of this EcobeeThermostatResponse instance.
:rtype: Page
"""
return self._page
@property
def thermostat_list(self):
"""
Gets the thermostat_list attribute of this EcobeeThermostatResponse instance.
:return: The value of the thermostat_list attribute of this EcobeeThermostatResponse instance.
:rtype: List[Thermostat]
"""
return self._thermostat_list
解决方法
根据documentation,您可以使用thermostat_response.thermostat_list()
(作为函数)。
如果没有文档怎么办?
万一遇到类似问题并且没有文档,可以使用Python的dir()
输出对象的所有属性,例如在您的情况下:
`dir(thermostat_response)`
有关this SO question中的详细信息。