python-sqlite3之占位符

The sqlite3 module supports two kinds of placeholders: question marks (qmark style) and named placeholders (named style).

execute(sql[, parameters])

sqlite3模块支持两种占位符:?占位符 和 有名占位符。

但是在使用 ?占位符时,要注意一点 当传入一个参数且该参数是字符串时,要将该字符串转换为 列表或元组。

验证过程如下:仔细看注释并运行

 1 #作为列表
 2 #像如下这种方式表示的占位符,那么需要将?看做一个接收list的参数
 3 sql = "UPDATE a SET para=? WHERE input_id=1"
 4 #c.execute(sql, ["hello"])
 5 #c.execute(sql, [string_new])
 6 #c.execute(sql, "hello")
 7 ##sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 5 supplied.
 8 ##从这个报错信息可以看出:将传入的占位符参数作为列表,current statement 只使用 0位置的元素,但是提供了5个元素,而占位符又只有一个,只需插入一个元素即可,其他多的元素不知道怎么处理,就报错了
 9 c.execute(sql, ("hello",))
10
11 ##作为元组
12 #sql = "UPDATE a SET para=(?) WHERE input_id=1"
13 ##c.execute(sql, ("hello1",))
14 ##c.execute(sql, (string_new,))
15 ##c.execute(sql, ["hello"])
16 #c.execute(sql, [string_new])
17
18 #?占位符总结
19 #execute(sql,parameters)中传入一个字符串时,不能直接将字符串作为parameter传入,要将其转换为列表或元组;否则sqlite3会将 字符串中的每一个字符作为一个parameter
20
21 #有名占位符
22 #sql = "UPDATE a SET para=:str WHERE input_id=1"
23 #c.execute(sql, {"str":string_new})

原文地址:https://www.cnblogs.com/black-mamba/p/9096519.html

时间: 2024-10-30 22:34:14

python-sqlite3之占位符的相关文章

python:脚本占位符

%d表示占位之后接的是digit数字%s表示占位之后接的是string字符串python脚本的语法格式:**Python第一原则,代码强制要求缩进(推荐4个空格),:(冒号)代表子语句开始.Python第二原则,打印字串必须使用引号,不加引号的只有数字和变量.rawinput ("提示") 读取的任何数据都被视为字串int(rawinput(提示)) 字串转数字X=rawinput("提示") 原文地址:http://blog.51cto.com/13587189/

python 格式话-占位符

格式化输出:name = qjage = 30job = itsalary = 6000例1:字符串拼接方法,不建议,因为会在内存中开辟多块内存空间. info = '''---------- info of ''' + name + ''' ---------Name:''' + name + '''Age:''' + age + '''job:''' + job + '''Salary:''' + salary 例2:使用%s.%d.%f占位info = '''---------- info

python如果想输出原格式的内容,可以加''' ''',占位符使用方式

print('我考了%d分'%20) msg=''' ---------info of %s----------- name: %s age: %d #字符串不能放到%d处 job: %s salary: %f you will be retired in %s years #数字可以放到%s处 ---------end--------------- '''%('tom','tom',20,'it',3444.44,45) print(msg) python如果想输出原格式的内容,可以加'''

python基础:函数、占位符、运算符、序列

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 前言: 1. 因为3.X的某些功能2.X不能用,所以需要使用 from __模块名__  import 功能 去加载某个模块的某个功能 2. 因为2.X版本不支持中文,所以在写脚本时需要指定编码格式 一. 函数 二. 占位符 三. 运算符 四. 比较运算符,返回pool值(True.False) 五. 赋值运算符(使用a和b举例) 六. 逻辑运算

python 占位符 格式化输出

常见的占位符有: %f浮点数%d整数 %s字符串 %x十六进制整数 其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数: >>> '%2d-%02d' % (3, 1) ' 3-01' >>> '%.2f' % 3.1415926 '3.14'

python——格式化输出、占位符、format()

占位符 常用占位符 描述 %s 字符串 %d 十进制整数 %o 八进制 %x 十六进制 %f 浮点数 >>> print('%s' % 'hello world') # 字符串输出 hello world >>> print('%20s' % 'hello world') # 右对齐,取20位,不够则补位 hello world >>> print('%-20s' % 'hello world') # 左对齐,取20位,不够则补位 hello worl

小白的python进阶历程------05.占位符

占位符的定义:在定义字符串数据的时候,某些索引位置上的内容还不确定,可以先使用占位符去预留出位置:等到之后明确了内容,在填入到字符串中 百分号原则: %d:预留整数位 %f:预留浮点位 %s:预留字符位(万能占位符) name = "Jack" age = 32 height=1.85 print("我叫:%s,今年:%d岁,身高:%0.2fm"%(name,age,height)) # %f可设定小数位数,%0.2f保留两位小数 print("我叫:%s

Python 字符串占位符与.format格式化的用法

直接上代码,一看就能懂: my_name = 'Richard' age = 22 salary = int(input('please input your salary:')) #method 1 占位符,%s表示只能接受string, %d代表只能接受数字,所以上边salary接受的input输入,需要强转为int类型 res1 = 'res1: My name is %s ,I\'m %d years old, my salary is %d'%(my_name,age,salary)

Python占位符介绍及操作方法

1,常用占用符: 常见的占位符有: %d 整数 %f 浮点数 %s 字符串 %x 十六进制整数使用方法:tpl = "i am %s" % "alex"  tpl = "i am %s age %d" % ("alex", 18)  tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age"

python sqlite3 数据库操作

SQLite3是python的内置模块,是一款非常小巧的嵌入式开源数据库软件. 1. 导入Python SQLite数据库模块 import sqlite3 2. python sqlite3模块的API """ sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的链接.您可以使用 ":memory:" 来在 RA