【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及以上提供)
相关推荐
Flittly1 分钟前
【LangGraph新手村系列】(5)时间旅行:浏览历史、分叉时间线与修改过去
python·langchain
逻辑驱动的ken6 分钟前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
兔小盈16 分钟前
多线程-(五)线程安全之内存可见性
java·开发语言·多线程
阿里云大数据AI技术28 分钟前
一条 SQL 生成广告:Hologres 如何实现素材生成到投放分析一体化
人工智能·sql
2301_7820404543 分钟前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python
yaoxin5211231 小时前
400. Java 文件操作基础 - 使用 Buffered Stream I/O 读取文本文件
java·开发语言·python
折哥的程序人生 · 物流技术专研1 小时前
《Java面试85题图解版(二)》进阶深化上篇:并发编程 + JVM
java·开发语言·后端·面试
2501_931803751 小时前
Go:一门为解决C语言痛点而生的现代语言
c语言·开发语言·golang
用户8356290780511 小时前
使用 Python 自动创建 Excel 折线图
后端·python
geovindu2 小时前
go: Interpreter Pattern
开发语言·设计模式·golang·解释器模式