Я работаю с PyYAML и мне нужно, чтобы описать конфигурацию сервера в YAML, а затем запустить сценарий с аргументами из этого списка:Как извлечь значения из списка python?
servers:
- server: server1
hostname: test.hostname
url: http://test.com
users:
- username: test
password: pass
- username: test1
password: pass2
- server: server2
hostname: test.hostname2
url: http://test2.com
users:
- username: test3
password: pass
- username: test4
password: pass2
- username: test5
password: pass6
...
тогда я получаю эти данные из YAML:
source = self._tree_read(src, tree_path)
, а затем я звоню Баш скрипт с арг из этого списка:
for s in source['servers']:
try:
subprocess.call(["/bin/bash", "./servers.sh",
s["server"],
s["hostname"],
s["url"],
**s["users"]**
], shell=False)
Как я могу передать пользователям в этом случае? Количество пользователей может быть различным для каждого сервера, и мне нужно как-то передать его как args. Или может быть, что можно поставить имена пользователей с каждого сервера в список и сделать то же самое с паролями, а затем передать его как 2 аргумента с 2 списками?
в subprocess.call я помещаю:. «» присоединиться (user_list) – BigBoss
@BigBoss Это просто еще один способ сделать список в строку, необходимую для предотвращения TypeError , – Anthon
@ Энтон - спасибо, что я не заметил этого :). Я добавлю BigBoss в мой ответ, если кто-нибудь еще столкнется с этим. – srowland