![](/img/trans.png)
[英]Rest api of gerrit gives the response but Python-gerrit-api package for fetching revisions gives status 404
[英]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.