Python SQLite 正则表达式 ExecuteMany
Posted
技术标签:
【中文标题】Python SQLite 正则表达式 ExecuteMany【英文标题】:Python SQLite Regex ExecuteMany 【发布时间】:2019-03-14 18:46:38 【问题描述】:提前感谢您的帮助。
我在 python 中使用正则表达式并在文本中存储模式。然后我将它存储在一个列表中,并在使用 SQLite 将值插入到表中时调用该列表。但是,我得到一个“str”对象没有属性“executemany”。下面的代码应该可以工作(就像它对 2 的元组一样)并将我的数据插入其中,但它给了我一个错误。
searc_h = re.compile(r'([A-Z]4|[A-Z]3)\s([\d]4)\s-\s[A-Z]1\s\((\d\.\d)')
find_all = list(re.findall(searc_h, texter))
find_all_fin = []
for (a,b,c) in find_all:
ap = (int(b), str(a), float(c))
find_all_fin.append(ap)
c.executemany('INSERT INTO Takes VALUES (?, ?, ?)', find_all_fin)
conn.commit()
这是错误 enter image description here
任何帮助或建议将不胜感激。
【问题讨论】:
【参考方案1】:您在两个不同的地方重用变量c
,一个用于存储数据库连接,另一个用于将 Regex 结果存储在 for 循环块中。消除它们的歧义,您的代码就可以了。
【讨论】:
以上是关于Python SQLite 正则表达式 ExecuteMany的主要内容,如果未能解决你的问题,请参考以下文章