我有一个文本文件,需要读取其中的内容。这是一个日志文件,所以它遵循特定的模式。最终我需要创建JSON格式的数据,但从研究这个问题来看,一旦转换为字典类型,只需使用 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': {}}}}}}}}}}}}}}}}}
我需要动态地填充字典,因为我不知道实际的字段/键名。