【发布时间】:2018-12-17 21:33:41
【问题描述】:
我有一个我读入的文本文件。这是一个日志文件,因此它遵循特定的模式。我最终需要创建一个 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
我最终要寻找的 dict 结构是
{
"INFO": {
"submit": {
"is_test": false,
"username": "Mary"
},
"env": {
"sys.platform": "linux2",
"os.name": "ubuntu"
}
}
}
我现在忽略每个列表中的时间戳信息。
这是我正在使用的代码的 sn-p,
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': {}}}}}}}}}}}}}}}}}
我需要动态填充字典,因为我不知道实际的字段/键名。
【问题讨论】:
-
你想如何处理多个日志/字典?给我们一个至少有 2 个日志的例子
-
问题似乎与标题无关
标签: python file dictionary