如何将json内容传递给python子进程或json文件

问题描述 投票:0回答:1

我正在使用python subprocess.popen运行openshift命令。

我的subprocess.popen看起来像:

subprocess.Popen(['oc','create','-n',project,'-f','resource.json'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)

我正在尝试像这样传递json文件。但这并不是在创建我尝试创建的资源。有谁知道我可以将json内容传递给它的任何其他方法。

python json linux subprocess openshift
1个回答
0
投票

由于OpenShift是Kubernetes,如果要使用Python Kubernetes客户端与OpenShift进行交互,可能值得检查:https://github.com/kubernetes-client/python

您使用subprocess的代码看起来正确,因此请检查stdoutstderr中打印的内容:

import subprocess

project = 'simon'
process = subprocess.Popen(['oc','create','-n',project,'-f','resource.json'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)

for line in process.stderr:
    print(line.strip())

for line in process.stdout:
    print(line.strip())

例如:

$ python3 test.py
b'pod/test created'
$ python3 test.py
b'Error from server (AlreadyExists): error when creating "resource.json": pods "test" already exists'
© www.soinside.com 2019 - 2024. All rights reserved.