LINUX.ORG.RU

История изменений

Исправление SpaceRanger, (текущая версия) :

Я слегонца плохо описал ситуацию в стартовом посте.. Ситуация такая: через ссш парамико я выполняю команду на удаленном хосте и вывод stdout сохраняю в переменной json_out. Затем мне содержимое этой переменной надо подать на вход парсера джейсона. Пока что наколхозил вот такое решение, которое работает, но лишено красоты, кмк:

            stdin, stdout, stderr = jump_host.exec_command("curl -s http://127.0.0.1:8080/service@127.0.0.1/interfaces/1/exec_mgr")
            json_out = stdout.read()
            with open("output", "w") as f:
                context = json_out.decode()
                f.write(context)

            with open("output", "r") as f:
                print_result = subprocess.run("jq", stdin=f, check=True)

В уголках сознания бьётся мысль, что и без файла как то можно значение переменной json_out передать напрямую в subprocess

Исправление SpaceRanger, :

Я слегонца плохо описал ситуацию в стартовом посте.. Ситуация такая: через ссш парамико я выполняю команду на удаленном хосте и вывод stdout сохраняю в переменной json_out. Затем мне содержимое этой переменной надо подать на вход парсера джейсона. Пока что наколхозил вот такое решение, которое работает, но лишено красоты, кмк:

            stdin, stdout, stderr = jump_host.exec_command("curl -s http://127.0.0.1:8080/service@127.0.0.1/interfaces/1/exec_mgr")
            json_out = stdout.read()
            with open("output", "w") as f:
                context = json_out.decode()
                f.write(context)

            with open("output", "r") as f:
                print_result = subprocess.run("jq", stdin=f, check=True)

Исходная версия SpaceRanger, :

Я слегонца плохо описал ситуацию в стартовом посте.. Ситуация такая: через ссш парамико я выполняю команду на удаленном хосте и вывод stdout сохраняю в переменной json_out. Затем мне содержимое этой переменной надо подать на вход парсера джейсона. Пока что наколхозил вот такое решение, которое работает, но лишено лоска:

            stdin, stdout, stderr = jump_host.exec_command("curl -s http://127.0.0.1:8080/service@127.0.0.1/interfaces/1/exec_mgr")
            json_out = stdout.read()
            with open("output", "w") as f:
                context = json_out.decode()
                f.write(context)

            with open("output", "r") as f:
                print_result = subprocess.run("jq", stdin=f, check=True)