Запустите скрипт оболочки с дополнительными параметрами из python и получите вывод в виде переменной python (аутентификация API) - PullRequest
0 голосов
/ 02 апреля 2020

Может ли кто-нибудь помочь мне со следующим:

У меня есть эта строка, которую я обычно запускаю в терминале:

 path/to/mysh/script.sh PROD generate-ticket username

, и она дает мне следующий вывод в терминале:

{"user":{"Userid":123,"firstName":"Joe","SecondName":"Doe","loginName":"jdoe"},"accessToken":"1235df6543cggf432sa24"}

Мне нужно значение 'accessToken', присвоенное переменной python.

Мой код:

import subprocess
import json 

username ='jdoe'

def get_Access_Token(username):
    s = json.loads(subprocess.check_output(['path/to/mysh/script.sh', 'PROD', 'generate-ticket', username]))


print (s['accessToken'])

, но при попытке напечатать мое сообщение вызывает следующую ошибку переменная:

NameError: name 's' is not defined

Заранее спасибо!

1 Ответ

1 голос
/ 02 апреля 2020

Возвращает значение из функции.

Пример:

import subprocess
import json 

username ='jdoe'

def get_Access_Token(username):
    return json.loads(subprocess.check_output(['path/to/mysh/script.sh', 'PROD', 'generate-ticket', username]))['accessToken']

print (get_Access_Token(username))
...