Python 3.x 将.log记录转换为json

Python 3.x 将.log记录转换为json,python-3.x,Python 3.x,我希望获取以下格式的日志文件,并将其转换为下面代码段的json格式 2020:03:29-23:07:22 sslvpnpa ulogd[19880]: id="2001" severity="info" sys="SecureNet" sub="packetfilter" name="Packet dropped" action="drop" fwrule="60001" initf="eth0" {"timestamp": "2020:03:29-23:07:22", "object":

我希望获取以下格式的日志文件,并将其转换为下面代码段的json格式

2020:03:29-23:07:22 sslvpnpa ulogd[19880]: id="2001" severity="info" sys="SecureNet" sub="packetfilter" name="Packet dropped" action="drop" fwrule="60001" initf="eth0"
{"timestamp": "2020:03:29-23:07:22", "object": "sslvpnpa", "code": "ulogd[19880]", "id":"2001", severity="info", sys="SecureNet", sub="packetfilter" ...}
并将其转换为下面代码段的json格式

2020:03:29-23:07:22 sslvpnpa ulogd[19880]: id="2001" severity="info" sys="SecureNet" sub="packetfilter" name="Packet dropped" action="drop" fwrule="60001" initf="eth0"
{"timestamp": "2020:03:29-23:07:22", "object": "sslvpnpa", "code": "ulogd[19880]", "id":"2001", severity="info", sys="SecureNet", sub="packetfilter" ...}
我的开始是这样循环:

log_fields = log_row.split()

obj={}
for k in log_fields:
    if k.find('=') > -1:
        obj[k.split('=')[0]] = k.split('=')[1]
但后来我意识到有些值有空格,可能有一些列表理解或生成器表达式更有效或更容易阅读

然后将生成的object/json添加到较大对象中的字段中


提前谢谢。

我想这会对你有帮助:

def split_字符串:
d={}
ind=0
拆分_s=s.拆分()
当ind
输入:

s='2020:03:29-23:07:22 sslvpnpa ulogd[19880]:id=“2001”severity=“info”sys=“SecureNet”sub=“packetfilter”name=“packetdrop”action=“drop”fwrule=“60001”initf=“eth0”'
打印(拆分字符串)
输出:

{'key0':'2020:03:29-23:07:22','key1':'sslvpnpa','key2':'ulogd[19880]:','id':'2001','severity':'info','sys':'SecureNet','sub':'packetfilter','name':'packetdrop','action':'drop','fwrule:'60001','initf':'eth0'}