首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python和landscape_api

Python和landscape_api
EN

Stack Overflow用户
提问于 2013-02-15 22:32:32
回答 1查看 162关注 0票数 0

我正在通过Python api管理Canonical CM Landscape。我不知道是否有人可以帮助我,但我被困在一点上,我不知道这是否是特定库的简单Python错误。这是更大的脚本的一部分,但是当我尝试使用这个清单中的最后一个函数时,它就掉了。

代码语言:javascript
运行
复制
    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返回错误

代码语言:javascript
运行
复制
   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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-15 22:40:33

只能在单个字符串上使用%运算符,而不能跨多个字符串使用。您当前要求Python做的是将多个变量插入到只定义了一个变量的字符串中。

更改此行:

代码语言:javascript
运行
复制
mac = api.execute_script(query="tag:%s", script_id="script_id:%s", username="user:%s" %(output, script, user))

要这样做:

代码语言:javascript
运行
复制
mac = api.execute_script(query="tag:%s" %tag, script_id="script_id:%s" %script, username="user:%s" %user
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14896897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档