Python 从带有正则表达式提取值的日志无法正确插入sqlite表
在SQLite中存储提取的值时出现问题-如何寻址或索引值列表以正确插入表中 正则表达式可以很好地工作: 输入的日志数据如下所示: 0.0.0(06026104)Python 从带有正则表达式提取值的日志无法正确插入sqlite表,python,regex,sqlite,iteration,Python,Regex,Sqlite,Iteration,在SQLite中存储提取的值时出现问题-如何寻址或索引值列表以正确插入表中 正则表达式可以很好地工作: 输入的日志数据如下所示: 0.0.0(06026104) 1.6.1(0.1501)(1011111000) 1.6.1*32(0.1446)(1010190800) 1.8.1(02484.825) 1.8.1*32(02449.574) 正确的正则表达式输出: 06026104 0.1501 02484.796 with open("usage.log") as fp: for lin
1.6.1(0.1501)(1011111000)
1.6.1*32(0.1446)(1010190800)
1.8.1(02484.825)
1.8.1*32(02449.574) 正确的正则表达式输出: 06026104
0.1501
02484.796
with open("usage.log") as fp:
for line in fp:
match = re.match(r'(0\.0\.0|1\.6\.1|1\.8\.1)\(([0-9\.]+)', line)
if not match: continue
version, value = match.groups()
mylist.append(value)
for item in mylist:
t = (item)
cursor.execute('INSERT INTO energielog(sernr) values (?)', [t])
cursor.execute('INSERT INTO energielog(peak) values (?)', [t])
cursor.execute('INSERT INTO energielog(kwh) values (?)', [t])
如何实现对SQLite的正确逐行读取
现在,每一行都错误地输入到表中:06026104位于第1行第1行、第2行第2行和第3行第3行。第二个值仅在第4行第1行和第5行第2行中,以此类推
例如,如果我让print t t[0:3],则输出为:
0600.01
024 它把它弄成了一排吗?如何将值1(06026104)输入到表行“sernr”中,将值2(0.1501)输入到表行“peak”中
那就行了请多解释一下你想做什么,你想让正则表达式匹配什么,等等。你的例子提供的信息很少。我对语法很马虎,尤其是缺少空格
for line in fp:
match = re.search(r'(0\.0\.0|1\.6\.1|1\.8\.1)\(([0-9\.]+)', line)
if match:
version,value = match.groups()
extrakt.append(value)
cursor.execute('INSERT INTO energielog (sernr, peak, kwh) values (?, ?, ?)', extrakt)