我目前正在开发使用UniFi控制器API的应用程序-在这种情况下,我正在使用pyunifi。
每当我尝试提取MAC地址的方法时,我仍然会获得整个数据有效负载。
import requests
from pyunifi.controller import Controller
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--controller', default='192.168.0.2', help='the controller address (default "unifi")')
parser.add_argument('-u', '--username', default='apiadmin', help='the controller username (default("admin")')
parser.add_argument('-p', '--password', default='apipass', help='the controller password')
parser.add_argument('-b', '--port', default='8443', help='the controller port (default "8443")')
parser.add_argument('-v', '--version', default='v5', help='the controller base version (default "v5")')
parser.add_argument('-s', '--siteid', default='default', help='the site ID, UniFi >=3.x only (default "default")')
parser.add_argument('-V', '--no-ssl-verify', default=False, action='store_true', help='Don\'t verify ssl certificates')
parser.add_argument('-C', '--certificate', default='', help='verify with ssl certificate pem file')
args = parser.parse_args()
ssl_verify = False
if ssl_verify and len(args.certificate) > 0:
ssl_verify = False
c = Controller(args.controller, args.username, args.password, args.port, args.version, args.siteid, ssl_verify=ssl_verify)
r.requests = requests.get(c.get_clients()).json()
requests['mac']
print(requests)```
Any help would be greatly appreciated to get me on the right track.
在需要提取MAC地址的情况下,最后几行没有多大意义:
r.requests
应该抛出一个NameError
,因为您r
在此脚本中的任何地方都没有定义。requests['mac']
也没做。这很可能是一个有效的引用,但是您在此处引用的将是您从标准库编辑mac
的requests
对象的属性。换句话说,即使您打算或以其他方式处理此值,这也将远远超出您的预期。import
requests
print
print(requests)
为“分出所有数据”,是因为您要在第1行中导入print
的requests
库的完整定义。requests
像pyunifi
在后台那样导入。与远程API交互所使用的每个方法都会requests
从视图中抽象出这种低层使用,因此将任何方法调用都包装在中是没有意义的requests.get()
。您应该在其GitHub页面上查看正在使用的库的文档(如果需要,还可以查看源代码),该页面包含一些有用的示例,这些示例可能有助于您发现所使用方法的正确用法。这里。除了这些注意事项,您的代码看起来还不错。纠正这些问题后,您将拥有一个类似于以下内容的脚本
from pyunifi.controller import Controller
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--controller', default='192.168.0.2', help='the controller address (default "unifi")')
parser.add_argument('-u', '--username', default='apiadmin', help='the controller username (default("admin")')
parser.add_argument('-p', '--password', default='apipass', help='the controller password')
parser.add_argument('-b', '--port', default='8443', help='the controller port (default "8443")')
parser.add_argument('-v', '--version', default='v5', help='the controller base version (default "v5")')
parser.add_argument('-s', '--siteid', default='default', help='the site ID, UniFi >=3.x only (default "default")')
parser.add_argument('-V', '--no-ssl-verify', default=False, action='store_true', help='Don\'t verify ssl certificates')
parser.add_argument('-C', '--certificate', default='', help='verify with ssl certificate pem file')
args = parser.parse_args()
ssl_verify = False
if ssl_verify and len(args.certificate) > 0:
ssl_verify = False
c = Controller(args.controller, args.username, args.password, args.port, args.version, args.siteid, ssl_verify=ssl_verify)
for client in c.get_clients(): # loop over each client returned from get_clients()
print(client['mac'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句