Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中获取Gerrit SSH输出_Python_Ssh_Gerrit_Plumbum - Fatal编程技术网

在python中获取Gerrit SSH输出

在python中获取Gerrit SSH输出,python,ssh,gerrit,plumbum,Python,Ssh,Gerrit,Plumbum,因此,我使用plumbum对gerrit执行ssh命令,但我似乎无法将输出作为json字典 eg: ssh abc.xyz.com gerrit query --patch-sets --format=json commit:12345678 此操作的输出还转储以下行: 类型:abcd 行数:整数 运行时毫秒:123 更多更改:ABCD 我觉得这也是另一本字典 eg: ssh abc.xyz.com gerrit query --patch-sets --format=json commit:

因此,我使用plumbum对gerrit执行ssh命令,但我似乎无法将输出作为json字典

eg: ssh abc.xyz.com gerrit query --patch-sets --format=json commit:12345678
此操作的输出还转储以下行: 类型:abcd 行数:整数 运行时毫秒:123 更多更改:ABCD

我觉得这也是另一本字典

eg: ssh abc.xyz.com gerrit query --patch-sets --format=json commit:12345678
那么,有没有办法将ssh命令的输出拉到python字典中呢


Ref:

要获得JSON格式的答案,您需要将“-format=text”选项更改为“-format=JSON”:


以下是我如何让它工作的:

data = ssh["abc.xyz.com",
    "gerrit",
    "query",
    "--patch-sets",
    "--format=JSON",
    "commit:",
    "12345678"]()

data2 = data[:data.rfind('{')]

有更好的解决办法吗

查询结果可能会返回多个更改,每个更改都位于单独的行上,由换行符分隔。结果的最后一行是摘要,其中包含关于是否有更多结果的提示(超出服务器端或通过查询上的
limit
选项设置的限制)

在您的例子中,您正在查询一个commit sha1,因此您只得到一个结果,但它仍然包括摘要行

通过在换行符上拆分输出并分别转换每一行,可以将结果转换为dict,例如:

import json
data = ssh["abc.xyz.com",
    "gerrit",
    "query",
    "--patch-sets",
    "--format=JSON",
    "commit:",
    "12345678"]()
data2 = json.loads(data.split()[0])

因为你似乎在问关于铅垂的具体问题,我建议编辑添加标签。答案似乎是(但我之前没有公开),即位
(cat My bad。是的,我使用了它,但问题是从那以后,我无法将输出存储到python中的dict中,因为输出生成了两个字典!