У меня есть текстовый файл, который я читал. Это файл журнала, поэтому он следует определенному шаблону. Мне нужно создать JSON в конечном счете, но, исследуя эту проблему, как только это будет в dict, это будет вопрос использования json.loads()
или json.dumps()
.
Ниже приведен образец текстового файла.
INFO:20180606_141527:submit:is_test=False
INFO:20180606_141527:submit:username=Mary
INFO:20180606_141527:env:sys.platform=linux2
INFO:20180606_141527:env:os.name=ubuntu
Структура диктата, которую я настойчиво ищу
{
"INFO": {
"submit": {
"is_test": false,
"username": "Mary"
},
"env": {
"sys.platform": "linux2",
"os.name": "ubuntu"
}
}
}
На данный момент я игнорирую информацию о метке времени в каждом списке.
Это фрагмент кода, который я использую,
import csv
tree_dict = {}
with open('file.log') as file:
for row in file:
for key in reversed(row.split(":")):
tree_dict = {key: tree_dict}
Это приводит к нежелательному выходу,
{'INFO': {'20180606_141527': {'submit': {'os.name=posix\n': {'INFO': {'20180606_141527': {'submit': {'sys.platform=linux2\n': {'INFO': {'20180606_141527': {'submit': {'username=a227874\n': {'INFO': {'20180606_141527': {'submit': {'is_test=False\n': {}}}}}}}}}}}}}}}}}
Мне нужно динамически заполнять dict, потому что я не знаю фактических названий полей/клавиш.