python - 将变量值传递给列名 sqlite3 python
问题描述
我试图通过添加一列来更改表,但不是直接在 sql 语句中命名它,而是我想使用一个变量值,所以我可以继续添加带有循环的列。其他变量有多种类型,从整数、浮点数、字符串甚至日期。
import sqlite3
db_path = "/Users/mbp2013/Library/Mobile Documents/com~apple~CloudDocs/Documents/Code/xml_echo_script/echo_db.db"
conn = sqlite3.connect(db_path)
db = conn.cursor()
variable = "whatever"
db.execute("ALTER TABLE echo ADD COLUMN ?", (variable))
但是,我不断收到 sqlite3.OperationalError: near "?": syntax error
我正在使用 sqlite 3 和 python 3.8.3。
有任何想法吗?
解决方案
您可能想使用基于 Python 的字符串替换:
import sqlite3
db_path = "/Users/mbp2013/Library/Mobile Documents/com~apple~CloudDocs/Documents/Code/xml_echo_script/echo_db.db"
conn = sqlite3.connect(db_path)
db = conn.cursor()
variable = "whatever"
db.execute(f"ALTER TABLE echo ADD COLUMN {variable}")
推荐阅读
- react-native - 如何从一个堆栈或模块导航到另一个堆栈或模块
- c - 在c中使用字符指针打印整数值
- javascript - 如何从移动模式中删除特定的 Javascript 代码
- sql - 更改多条记录的日期格式 SQL 查询
- python - Numba 嵌套函数不会执行(0.47 版)
- c++ - 如何重载下标运算符 [] 以引用 2d STL 数组?
- r - R:使列线图标签斜体
- android - 无法下载文件 - java、downloadmanager、API 28
- google-analytics - Google Analytics 子目录过滤器不起作用
- html - 如何在滚动事件上进行整个 div 滚动?