繁体   English   中英

在python中获取Gerrit SSH输出

[英]Fetching Gerrit SSH output in python

所以我正在使用铅来对gerrit执行ssh命令,但是我似乎无法将输出作为json字典输入。

eg: ssh abc.xyz.com gerrit query --patch-sets --format=json commit:12345678

此命令的输出还会转储以下行:类型:abcd rowCount:整数runTimeMilliseconds:123 moreChanges:ABCD

我觉得这也是另一本字典。

那么,是否有将ssh命令的输出拉入python字典的功能?

参考: https : //review.openstack.org/Documentation/cmd-query.html

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

在您的情况下,您要查询一个提交sha1,因此您只会得到一个结果,但它仍包含摘要行。

通过在换行符上分割输出并分别转换每行,应该可以将结果转换为字典,例如:

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

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

ssh abc.xyz.com gerrit query --patch-sets --format=json commit:12345678

这是我的工作方式:

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

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

有更好的解决方案吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM