簡體   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