python读取文件以使其排序,但使用许多不同的分隔符



我需要一个日志构建,比如:

2022-08-22 - something WARN - data1 = 6.3 something| data2 = 7 something | data3 = 8 units

最后在中有Json输出

'field1':'2022-08-22','field2':'something','data1':'6.3','data2':'7','data3':'8' 

所以我需要管理自动命名字段1&field2主题演讲&管理所有";警告",'-','=','|'作为不同的分离器

我尝试了一些与或多或少相似的解决方案的代码

split_string = sample_string.split(',||=')  # just interprets the ',' char only

作为让分离器工作的第一步(当前问题(,但我已经在上失败了

没有拆分好的功能/解决方案,使用没有pandas模块的python 2.7(我公司不允许(。

.split使用其参数。它不寻找";";,它会精确地查找您传递的字符串。所以,分步骤执行。首先,split(' - ')。这将为您提供日期、预警前字符串和包含数据的最后字段。

s = "2022-08-22 - something WARN - data1 = 6.3 something| data2 = 7 something | data3 = 8 units"
p1 = s.split(' - ')
print(p1)
p2 = p1[2].split('|')
print(p2)
data = {}
data['field1'] = p1[0]
data['field2'] = p1[1].strip().split()[0]
for part in p2:
p3 = part.strip().split('=')
data[p3[0]] = p3[1].strip()
print(data)

输出:

['2022-08-22', 'something WARN', 'data1 = 6.3 something| data2 = 7 something | data3 = 8 units']
['data1 = 6.3 something', ' data2 = 7 something ', ' data3 = 8 units']
{'field1': '2022-08-22', 'field2': 'something', 'data1 ': '6.3 something', 'data2 ': '7 something', 'data3 ': '8 units'}

最新更新