psycopg2模块应用 | %(id)s和%s什么区别
%(id)s
和 %s
是用于参数化查询的两种不同方式,它们在执行 SQL 查询时的作用和用法不同:
-
%(id)s:这是一种命名参数的方式,通常在使用字典传递参数时使用。它表示一个占位符,其中 "id" 是参数的名称。在执行 SQL 查询时,实际的参数值将从字典中根据名称提取并替换占位符。这种方式通常在使用
psycopg2
或类似库时用于参数化查询。例如,如果有以下查询:
# 要插入的数据列表,每个元素是一个字典 data_to_insert = [ {'id': 1, 'first_name': 'John', 'last_name': 'Doe'}, {'id': 2, 'first_name': 'Jane', 'last_name': 'Smith'}, {'id': 3, 'first_name': 'Bob', 'last_name': 'Johnson'} ] cursor.execute("INSERT INTO users(id, name) VALUES (%(id)s, %(name)s)", {'id': 1, 'name': 'John'})
%(id)s
和%(name)s
是命名参数,它们将分别用字典中的 "id" 和 "name" 值替换。 -
%s:这是一种位置参数的方式,通常在使用元组传递参数时使用。它表示一个占位符,表示参数的位置。在执行 SQL 查询时,实际的参数值将按顺序从元组中提取并替换占位符。这种方式通常在执行参数化查询时使用。
例如,如果有以下查询:
# 要插入的数据列表 data_to_insert = [ (1, 'John', 'Doe'), (2, 'Jane', 'Smith'), (3, 'Bob', 'Johnson') ] cursor.execute("INSERT INTO users(id, name) VALUES (%s, %s)", (1, 'John'))
%s
是位置参数,它们将分别用元组中的值 1 和 'John' 替换。
总的来说,%(id)s
和 %s
都用于在 SQL 查询中插入参数,但它们的使用方式和传递参数的方式有所不同。
%(id)s
是一种命名参数,而 %s
是一种位置参数。
可根据具体需求和代码中的数据结构来选择使用哪种方式。
分类:
Python学习
, SQL / PostgreSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-09-03 geoserver如何配置图层样式(SLD格式)
2022-09-03 geoserver配置线图层样式(QGIS版的SLD格式)