Ваши последние несколько строк не имеют особого смысла в контексте вашего требования извлекать MA C адреса:
r.requests
должны выдавать NameError
, как вы и не знали r
нигде в этом скрипте не определено. - Строка
requests['mac']
ничего не делает. Это вполне может быть действительная ссылка, но здесь вы ссылаетесь на свойство mac
объекта requests
, которое вы import
извлекли из стандартной библиотеки requests
. Другими словами, это было бы далеко от того, что вы ожидали, даже если бы вы все равно print
или иным образом обработали это значение. - Вызов
print(requests)
«выливает все данные», потому что вы print
вводите полное определение библиотеки requests
, которую вы импортировали в строке 1. - Прежде всего, вам не нужно импортировать
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'])