【python】【sql】格式化注意事项

如果需要格式化表名到 sql 语句,sql 引擎是不支持的。

所以表名需要用字符串格式化,但其他参数最好用 sql 自带的格式,这样就不用去调一些细节,比如字符串的值是否要带引号之类的。

比如:

python 复制代码
cur.execute('SELECT {0} FROM {1} WHERE {2}="{3}"'.format(columnName, tableName, columnName, value))

# 上述是字符串格式化,所以参数 {3},如果是字符串,还要显式指定 ""

优化的方案是:

python 复制代码
cur.execute(f'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 或者
cur.execute(F'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 其中:
# f 和 F 是 python 格式化字符串的方法(python 3.6及以上提供)
相关推荐
踩着两条虫9 分钟前
「AI + 低代码」的可视化设计器
开发语言·前端·低代码·设计模式·架构
JoneBB12 分钟前
ABAP Webservice连接
运维·开发语言·数据库·学习
scan72427 分钟前
智能体多个工具调用
python
2401_8676239834 分钟前
CSS Flex布局中如何设置子元素间距_掌握gap属性的现代用法
jvm·数据库·python
即使再小的船也能远航41 分钟前
【Python】安装
开发语言·python
weixin_4217252643 分钟前
Linux 编程语言全解析:C、C++、Python、Go、Rust 谁更强?
linux·python·go·c·编程语言
Irissgwe44 分钟前
类与对象(三)
开发语言·c++·类和对象·友元
没有梦想的咸鱼185-1037-16631 小时前
AI-Python机器学习、深度学习核心技术与前沿应用及OpenClaw、Hermes自动化编程
人工智能·python·深度学习·机器学习·chatgpt·数据挖掘·数据分析
雪度娃娃1 小时前
转向现代C++——优先选用nullptr而不是0和NULL
开发语言·c++
axinawang1 小时前
第3课:变量与输入
python