2017-04-19 25 views
0

OpenSSL的命令的輸出看起來是這樣的:OpenSSL的命令的輸出轉換爲JSON

serial=CABCSDUMMY4A168847703FGH 
notAfter=Oct 21 16:43:47 2024 GMT 
subject= /C=US/ST=WA/L=Seattle/O=MyCo/OU=TME/CN=MyCo.example.com 

如何轉換這個字符串成JSON?

我嘗試這些:

temp_txt_bytes = subprocess.check_output (["openssl", "x509", "-serial", "-enddate", "-subject", "-noout", "-in", pem_file_name]) 

temp_txt_strings = temp_txt_bytes.decode("utf-8") 

test = json.loads(temp_txt_strings) #json.parse, json.dump, and json.load also failing 
+0

使用'json.dumps'到_to_ JSON轉換。 – tdelaney

+0

你想要序列化什麼?一串輸出線?這只是'json.dumps(temp_txt_strings)'。 – tdelaney

回答

1

你可以用「=」作爲分隔符,把兩個部分的有序字典,然後將其轉儲到JSON每一行拆分:

my_list = "serial=CABCSDUMMY4A168847703FGH".split("=") 
ordered_dict = OrderedDict() 
ordered_dict[my_list[0]] = my_list[1] 
print(json.dumps(ordered_dict)) 

輸出將如下所示:

{"serial": "CABCSDUMMY4A168847703FGH"} 

您可以對所有行執行此操作。 PS不要忘了導入JSON和OrderedDict