У меня есть огромные строки (7-10 тыс. Символов) из файлов журналов, из которых мне нужно автоматически извлекать и табулировать информацию.Каждая строка содержит около 40 значений, которые вводятся разными людьми.Пример;
Example string 1.) 'Color=Blue, [randomJunkdataExampleHere] Weight=345Kg, Age=34 Years, error#1 randomJunkdataExampleThere error#1'
Example string 2.) '[randomJunkdataExampleHere] Color=Red 42, Weight=256 Lbs., Age=34yers, error#1, error#2'
Example string 3.) 'Color=Yellow 13,Weight=345lbs., Age=56 [randomJunkdataExampleHere]'
Желаемым результатом является новая строка или даже словарь, который организует данные и готовит данные для записи в базу данных (одна строка для каждой строки данных);
Color,Weight,Age,Error#1Count,Error#2Count
blue,345,34,2,0
red,256,24,1,1
yellow,345,56,0,0
Рассмотреноиспользуя re.search для каждого столбца / значения, но так как существует разница в том, как пользователи вводят данные, я не знаю, как отловить только числа, которые я хочу извлечь.Также не знаю, как зафиксировать, сколько раз в строке встречается сообщение «Ошибка # 1».
import re
line = '[randomJunkdataExampleHere] Color=Blue, Weight=345Kg, Age=34 Years, error#1, randomJunkdataExampleThere error#1'
try:
Weight = re.search('Weight=(.+?), Age',line).group(1)
except AttributeError:
Weight = 'ERROR'
Цель / результат:
Color,Weight,Age,Error#1Count,Error#2Count
blue,345,34,2,0
red,256,24,1,1
yellow,345,56,0,0