好的节省空间我会发布代码片段。其次,我不是Python编码器。我通常是C#。所以我尽力而为,特别是当发现没有SWITCH STATEMENT时。
所以我在课堂上有一个方法可以与Lifx Cloud API交流,它运行正常。
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
我试图调用(这不是唯一具有相同问题的方法)toggle 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
方法时,它们都不起作用。但这里是踢球者。当我将URL生成的URL复制到这个普通的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对我来说是新的,我不明白我的问题是什么。由于使用令牌工作和设置标头信息的功能对于每个方法都是相同的,所以我认为不是这样。
提前感谢第二双眼睛。业务。
编辑:--------------------- 为了得到我给出的答案,我可以更加关注我的方法图表和我输入的内容。我非常愚蠢地搞砸了(新词)。在这里,当你遇到困难然后回来时,孩子们会走开。更多的凝视并没有帮助。
答案 0 :(得分:1)
问题似乎是在request.get
而不是ToggleLight
中调用requests.post
,就像在独立程序中一样。