Python SQlite3 插入参数

Dan*_*any 0 python sqlite python-2.7

问题:

我在使用 python 将数据插入 SQlite 时遇到问题。目前我是 python 新手,所以这一定是初学者的错误。

错误:

操作错误:无法识别的令牌:“{”

我尝试过的:

我已经阅读了很多教程并尝试了很多选项,如下代码示例所示。但由于某种原因,我无法让它正常工作。

一些例子 :

cursor.execute("INSERT INTO wanted_movie (tmdb_id, name, year) VALUES ({tmdb_id}, {name}, {year})".format(
        tmdb_id=str(data['id']), name=str(data['title']), year=str(data['release_date']).split('-')[0]))

cursor.execute("INSERT INTO wanted_movie (tmdb_id, name, year) VALUES ({tmdb_id}, {name}, {year})", {
        "tmdb_id": str(data['id']), "name": str(data['title']), "year": str(data['release_date']).split('-')[0]})
    conn.commit()
Run Code Online (Sandbox Code Playgroud)

问题 :

有人可以帮助我以 pythonic 方式使用 SQlite3 正确插入一行吗?

Bha*_*Rao 5

不仅仅是 pythonic 方式,还有 sqlitic 方式

\n\n

来自文档

\n\n
\n

相反,请使用 DB-API\xe2\x80\x99s 参数替换。放作为占位符,无论您想在哪里使用值,然后提供一个值元组作为游标的第二个参数\xe2\x80\x99sexecute()方法。

\n
\n\n

你的例子之一可以通过使用来解决

\n\n
values = (data[\'id\'],data[\'title\'],data[\'release_date\'])\ncursor.execute("INSERT INTO wanted_movie (tmdb_id, name, year) VALUES (?, ?, ?)",values)\n
Run Code Online (Sandbox Code Playgroud)\n