Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python请求获取令牌_Python_Python 3.x_Python Requests - Fatal编程技术网

使用Python请求获取令牌

使用Python请求获取令牌,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,要登录我的一个Reoline摄像头,我需要一个令牌,我可以使用CURL检索它: curl -d '[{"cmd": "Login", "action": 0, "param": {"User": {"userName": "admin", "password": "XXX"}}}]' 10.0.1.241/cgi-bi

要登录我的一个Reoline摄像头,我需要一个令牌,我可以使用CURL检索它:

curl -d '[{"cmd": "Login", "action": 0, "param": {"User": {"userName": "admin", "password": "XXX"}}}]' 10.0.1.241/cgi-bin/api.cgi?cmd=Login&token=null
交付:

[{
  "cmd" : "Login",
  "code" : 0,
  "value" : {
     "Token" : {
        "leaseTime" : 3599,
        "name" : "b5ada7618176225"
     }
  }}]
但我想在Python中执行此令牌检索,但失败了:

    import requests
    url_WZ = 'http://10.0.1.241/cgi-bin/api.cgi?cmd=Login'
    payload = [{"cmd": "Login", "action": 0, "param": {"User": {"userName": "admin", "password": "XXX"}}}]

    r = requests.post(url=url_WZ, params=payload)
我收到以下错误消息:

    Traceback (most recent call last):
      File "/Users/hubobel/Documents/Python/HubobelsPython/Reolink.py", line 8, in <module>
        r = requests.post(url=url_WZ, params=payload)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/api.py", line 112, in post
        return request('post', url, data=data, json=json, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 499, in request
        prep = self.prepare_request(req)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 431, in prepare_request
        hooks=merge_hooks(request.hooks, self.hooks),
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/models.py", line 303, in prepare
        self.prepare_url(url, params)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/models.py", line 421, in prepare_url
        enc_params = self._encode_params(params)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/models.py", line 97, in _encode_params
        for k, vs in to_key_val_list(data):
    ValueError: too many values to unpack (expected 2)

Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“/Users/hubobel/Documents/Python/HubobelsPython/Reolink.py”,第8行,在
r=requests.post(url=url_WZ,params=payload)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/api.py”,第112行,在post中
返回请求('post',url,data=data,json=json,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/api.py”,请求中的第58行
return session.request(method=method,url=url,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/sessions.py”,请求中第499行
准备=自我准备请求(req)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/sessions.py”,第431行,在prepare_request中
钩子=合并钩子(request.hooks,self.hooks),
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/models.py”,第303行,在prepare中
self.prepare_url(url,参数)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/models.py”,第421行,在prepare_url中
enc_参数=自编码参数(参数)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/requests/models.py”,第97行,在_encode_params中
对于k,vs in to_key_val_list(数据):
ValueError:要解压缩的值太多(应为2个)
进程已完成,退出代码为1
如果我能帮上忙就好了


许多问候

这是我的工作解决方案:

import requests

url_WZ = 'http://10.0.1.241/cgi-bin/api.cgi?cmd=Login'
payload = '[{"cmd": "Login", "action": 0, "param": {"User": {"userName": "admin", "password": "XXX"}}}]'
r = requests.post(url=url_WZ, data=payload)
data = r.json()
print(data)

Params是URL查询参数,读Yaeh!!!你救了我一天!