Я рекомендую использовать для l oop для чтения файла, но я хочу только прочитать указанный c блок. Затем преобразовать в формат json.
Пример:
# Summary Report #######################
System time | 2020-02-27 15:35:32 UTC (local TZ: UTC +0000)
# Instances ##################################################
Port Data Directory Nice OOM Socket
===== ========================== ==== === ======
0 0
# Configuration File #########################################
Config File | /etc/srv.cnf
[server]
server_id = 1
port = 3016
tmpdir = /tmp
[client]
port = 3016
# management library ##################################
# The End ####################################################
текстовый файл
параметры захвата c блок:
[server]
server_id = 1
port = 3016
tmpdir = /tmp
[client]
port = 3016
содержимое блока
в результате json:
{
"server": {
"server_id":"1",
"port":"3016",
"tmpdir":"/tmp"
},
"client": {
"port": "3016"
}
}
результат json
Есть ли встроенная функция для достижения этой цели?
Я пытался использовать следующее для разбора текстового файла. Но это не сработало.
import json
filename = 'conf.txt'
commands = {}
with open(filename) as fh:
for line in fh:
command, description = line.strip().split('=', 1)
commands[command.rstrip()] = description.strip()
print(json.dumps(commands, indent=2, sort_keys=True))