好的,为了节省空间,我会发布代码的片段。其次,我不是Python程序员。我通常是C#。所以我尽了最大的努力,尤其是当我发现没有开关语句的时候。
因此,我有一种方法可以与对话,它工作得很好。
def GetAllLifxs(self):
selector = 'all';
uri = '%s%s' % (self._baseUri, selector)
response = requests.get(uri, headers = self._headers)
result = LifxProxyResult(999, {})
if response:
result = LifxProxyResult(response.status_code, json.loads(response.text))
return result上面的代码最终命中了API:https://api.lifx.com/v1/lights/all
我试图调用(这不是唯一有相同问题的方法)切换api调用。我尝试过几个不同的selectors,但仍然一无所获。
切换代码是这样的:
def ToggleLight(self, value, selectorType = 'all'):
if not selectorType == 'all':
if value == None:
raise TypeError('[value] cannot be None.')
typeSwitch = {
'id': 'id:%s' % value,
'label': 'label:%s' % value,
'group_id': 'group_id:%s' % value,
'group': 'group:%s' % value,
'location_id': 'location_id:%s' % value,
'location': 'location:%s' % value,
'scene_id': 'scene_id:%s' % value
}
#If nothing just for fun Toggle ALL lights
selector = '%s/toggle' % typeSwitch.get(selectorType, 'all')
uri = '%s%s' % (self._baseUri, selector)
response = requests.get(uri, headers = self._headers)
return response三次尝试都有一个Response Code of 404。在每种情况下,ToggleLight方法都生成这些URL。
当我调用ToggleLight方法时,它们都不起作用。但这是最关键的。当我将生成的URLs复制到这个普通的Python文件并运行它时,我会正确地操作灯光。
import requests
token = "MyMagicKeyHere"
headers = {
"Authorization": "Bearer %s" % token,
}
response = requests.post('https://api.lifx.com/v1/lights/label:DreLight/toggle', headers=headers)Python对我来说太新了,我不明白我的问题是什么。由于使用令牌工作和设置标头信息的函数对每个方法都是相同的,所以我认为不可能是这样。
谢谢你的第二双眼睛。做生意。
编辑:我把(生词)搞得很蠢。孩子们在这里的教训是,当你被困的时候走开,然后回来。再盯着看也没用。

发布于 2016-04-01 03:43:46
问题似乎是在ToggleLight中调用一个ToggleLight,而不是requests.post,就像在独立程序中一样。
https://stackoverflow.com/questions/36346897
复制相似问题