как передать параметры в python скрипт как JSON - PullRequest
0 голосов
/ 14 июля 2020

Как вызвать приведенный ниже сценарий python через API и передать параметры через JSON?

Мне нужна помощь в передаче имени хоста, учетных данных и команд в качестве параметров из внешнего приложения.

import paramiko

hostname = "127.0.0.1"
username = "test"
password = "abc1235"

commands = [
    "pwd",
    "id",
    "uname -a",
    "df -h"
]

# initialize the SSH client
client = paramiko.SSHClient()
# add to known hosts
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    client.connect(hostname=hostname, username=username, password=password)
except:
    print("[!] Cannot connect to the SSH Server")
    exit()
    
# execute the commands
for command in commands:
    print("="*50, command, "="*50)
    stdin, stdout, stderr = client.exec_command(command)
    print(stdout.read().decode())
    err = stderr.read().decode()
    if err:
        print(err)    

1 Ответ

0 голосов
/ 14 июля 2020

Используя argparse, вы можете передать JSON в качестве аргумента командной строки, а затем, используя встроенный json пакет python, проанализируйте JSON следующим образом:

import argparse
import json

# Set up the argument parser
parser = argparse.ArgumentParser()
parser.add_argument('JSON', metavar='json',type=str, help='JSON to parse')

args = parser.parse_args()

# Get JSON data
json_str = args.JSON

# Parse JSON data
json_data = json.loads(json_str)
print(json_data["hostname"])

Но, честно говоря, вам будет лучше, если вы просто разделите значения JSON, и они будут передавать каждое из них индивидуально в качестве аргумента командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...