我正在通过Python api管理Canonical CM Landscape。我不知道是否有任何人可以帮助我,但我被困在一点,我不知道这是否是该特定库的简单Python错误。这是较大脚本的一部分,但当我尝试使用此列表中的最后一个函数时它会丢失。
import os, json, sys, subprocess, csv, datetime, time
from landscape_api.base import API, HTTPError
from subprocess import Popen,PIPE,STDOUT,call
uri = "xxxxxxxxxxxxxxxxxxxxxxxx"
key = "xxxxxxxxxxxxxxxxxxxx"
secret = "xxxxxxxxxxxxxxxxxxxxxxx"
api = API(uri, key, secret)
proc=Popen('zenity --entry --text "Fill with machine Tag to be searched" --entry- text "Type Tag"', shell=True, stdout=PIPE, ) #Input from zenity window
output=proc.communicate()[0]
user="root"
script="2408"
mac = api.execute_script(query="tag:%s", script_id="script_id:%s", username="user:%s" %(output, script, user))
最后一个函数api.execute_script返回错误
Traceback (most recent call last):
File "Python_MAC_IP.py", line 35, in <module>
mac = api.execute_script(query="tag:%s", script_id="script_id:%s", username="user:%s" %(output, script, user))
TypeError: not all arguments converted during string formatting
答案 0 :(得分:0)
您只能在单个字符串上使用%
运算符,而不能跨多个字符串使用mac = api.execute_script(query="tag:%s", script_id="script_id:%s", username="user:%s" %(output, script, user))
运算符。你目前要求Python做的是将多个变量插入到只有一个定义的字符串中。
更改此行:
mac = api.execute_script(query="tag:%s" %tag, script_id="script_id:%s" %script, username="user:%s" %user
到此:
{{1}}