0

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
4

1 に答える 1

0

%演算子は、複数の文字列ではなく、単一の文字列でのみ使用できます。現在 Python に求めているのは、1 つのみ定義された文字列に複数の変数を挿入することです。

この行を変更します。

mac = api.execute_script(query="tag:%s", script_id="script_id:%s", username="user:%s" %(output, script, user))

これに:

mac = api.execute_script(query="tag:%s" %tag, script_id="script_id:%s" %script, username="user:%s" %user
于 2013-02-15T14:40:32.547 に答える