我有一個 shell 腳本 version.sh,其中有類似的代碼。
#!/bin/sh
data = `lsb_release -a`
echo $data
它回傳了我的輸出,如:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
所以我真正想要的是想要創建一個 JSON 檔案。資料應該在那里
{'Release' : 20.04 , 'Codename' : focal}
我想以 JSON 格式列印資料。誰能幫我解決這個問題?我被困在這里。任何建議任何幫助都很重要。
uj5u.com熱心網友回復:
您可以使用 python ttp 模塊來獲取此資料。請參見以下示例:
from ttp import ttp
import json
data_to_parse = """
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
"""
ttp_template = """
Release: {{release}}
Codename: {{codename}}
"""
parser = ttp(data=data_to_parse, template=ttp_template)
parser.parse()
# print result in JSON format
results = parser.result(format='json')[0]
#print(results)
#converting str to json.
result = json.loads(results)
print(result)
查看輸出:

按要求編輯(不使用任何包):
data_to_parse = """
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
"""
lines = data_to_parse.splitlines()
result = {}
for line in lines:
if 'Release:' in line:
line2 = line.split(':')
result['Release'] = (line2[1].strip())
elif 'Codename:' in line:
line2 = line.split(':')
result['Codename'] = (line2[1].strip())
print(result)
查看結果:

編輯2.時間:
新資料:
data_to_parse = """
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 22.04
Codename: local
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 21.04
Codename: cocal
"""
編碼:
lines = data_to_parse.splitlines()
result_list = []
result2 = {}
result_list3 = []
for line in lines:
if 'Release:' in line:
line2 = line.split(':')
result_list.append({'Release': line2[1].strip()})
elif 'Codename:' in line:
line2 = line.split(':')
result_list.append({'Codename': line2[1].strip()})
result2 = {**result_list[0], **result_list[1]}
result_list3.append(result2)
result_list = []
print(result_list3)
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466169.html
