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的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式的 SQLite 查询

python 做一个图书管理系统,数据库:sqlite

SQLite正则表达式用于查找字符串不在预定义集中的行

与正则表达式捕获字符串一起使用时,SQLite SELECT 在 Ruby 中不起作用,但与字符串文字一起使用

Python应用 - 爬虫开发记录01

Python第三方库