Python compare CompletedProcess



我有以下python脚本

get = int(subprocess.run(["electrum","getbalance"]))
if get > 0:
print("something")

我得到以下错误TypeError: int()参数必须是字符串、类字节对象或数字,而不是'CompletedProcess'

getbalance的输出是:{信用证上还用写明"保:"0.000001";}

如果余额高于0,我如何比较并打印一些东西?

run函数返回subprocess.CompletedProcess类的一个实例。

根据文档,您可以使用stdout属性从子进程获取捕获的标准输出。注意,这将返回一个字节序列(因为调用run()时没有编码、错误或text=True)

还可以捕获stdoutstderr,将capture_output=True传递到run功能。

的例子:

>>> from subprocess import run
>>> completed_process = run(['powershell.exe', '-c', 'Write-Output "Hello"'], capture_output=True)
>>> type(completed_process)
<class 'subprocess.CompletedProcess'>
>>> completed_process.stdout
b'Hellorn'
>>> type(completed_process.stdout)
<class 'bytes'>

我想这应该能奏效:

output = subprocess.run(your_command_here, capture_output=True, text=True)

这将返回一个"completedprocess"。然后你可以检查是否一切顺利:

if(output.returncode == 0):
# do stuffs

看看你说你的命令返回{ "confirmed": "0.000001" }的输出,我猜python将使用它作为JSON。所以你可以得到& 0.000001"值:

import json
data = output.stdout
data = json.loads(data)
what_you_want = data['confirmed']

代码是这样的:

import json
output = subprocess.run(your_command_here, capture_output=True, text=True)
if(output.returncode == 0):
data = output.stdout
data = json.loads(data)
what_you_want = data['confirmed']

PS:我没有尝试这个代码,我不知道它是否运行。

相关内容

  • 没有找到相关文章

最新更新