【已解决】Python使用sql语句模糊查询报错:python中TypeError: not enough arguments for format string
2021-03-26-19:54:13
今天下午对世界疫情详情数据库进行模糊查询。
首先要明确一点:使用模糊查询就会用到WHERE语句中的LIKE语句,主要说一下在使用 % 的时候要注意的点:
在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%。
将在Python中执行的sql语句改为:
sql = "SELECT * FROM table_test WHERE value LIKE '%%%%%s%%%%'" % test_value
执行成功,print出SQL语句之后为:
SELECT * FROM table_test WHERE value LIKE '%%public%%'
Python在执行sql语句的时候,同样也会有%格式化的问题,
仍然需要使用%%来代替%。因此要保证在执行sql语句的时候格式化正确。
而不只是在sql语句(字符串)的时候正确。
1 sql = " SELECT * FROM world WHERE continent LIKE '%%%%%s%%%%'" %continent
在Python解析第一次之后sql语句会变成这样:
SELECT * FROM world WHERE continent LIKE '%%美洲%%'
这时候字符串两边的百分号是两个,原来是四个,但是在执行sql语句的时候,Python还会再解析一次%,所以原始字符串需要四个百分号
来表示一个百分号。
在sql语句里是支持对变量的插入的,比如:
1 sql_temp = " SELECT * FROM world WHERE c_name LIKE '"+c_name+"'"
1 ql = " SELECT * FROM world WHERE continent LIKE '%%%%%s%%%%'" %continent
总结几个sql常用语句:
我们查询的时候经常需要用到排序以及数据包含和不包含的筛选条件:
1 sql = 'SELECT province,city,confirm,heal,dead FROM details ' \
2 'where update_time=(select update_time from details order by update_time desc limit 1) '\
3 ' and city not in ("境外输入","地区待确认") '
按日期降序:
1 sql = " SELECT * FROM world WHERE c_name LIKE '%%%%%s%%%%' order by dt desc "%c_name

原文链接:https://blog.csdn.net/xinqing0909/article/details/80775234
【已解决】Python使用sql语句模糊查询报错:python中TypeError: not enough arguments for format string的更多相关文章
- Sql语句模糊查询字符串的两种写法
Sql语句模糊查询有两种写法,一种是在jdbcTemplate的查询方法参数里拼接字符串%,一种是在Sql语句里拼接%字符串. public class IsNameDaoImpl implement ...
- sql注入--双查询报错注入
sql注入--双查询报错注入 背景:在sqli-labs第五关时,即使sql语句构造成功页面也没有回显出我们需要的信息,看到了有使用双查询操作造成报错的方式获得数据库信息,于是研究了一下双查询的报错原 ...
- Python TypeError: not enough arguments for format string
今天使用mysqldb执行query语句的时候,在执行这条语句的时候: select PROJ, DATE_FORMAT(MAX(DATE),'%Y-%m-%') AS MAXDATE, DATE_F ...
- 使用Python过程出现的细节问题:TypeError: not enough arguments for format string
今天使用字符串格式化时,遇到的一点小问题:调用这个方法解释器出错了:TypeError: not enough arguments for format string def ll(name,age) ...
- sql注入--双查询报错注入原理探索
目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客, ...
- Javaweb问题解决--在.java文件里面写sql语句模糊查询不成功的原因
问题描述 在上学期,我就遇到了这个问题(别骂别骂),然后当时卡住之后,Mybatis闯入了我的视线,然后直接换用了较为方便的Mybatis框架结构,这个问题也就被搁置了,今天重新提起,优势慢慢地查阅了 ...
- jdbcTemplate异常:like模糊查询报错(Parameter index out of range (1 > number of parameters)
http://cuisuqiang.iteye.com/blog/1480525 模糊查询like要这样写 注意Object参数和like语法 public static void main( ...
- 【已解决】error setting certificate verify locations报错
目录 1.问题描述 2.问题分析 3.解决方法 1.问题描述 在公司的电脑上从Github上clone项目的时候git黑窗口报错"error setting certificate veri ...
- SQL语句模糊查询年月
<if test="uploadTime != null" > <![CDATA[ and date_format(w.upload_time, '%Y%m') ...
- 解决thinkphp query()执行原生SQL语句成功结果报错的问题
1.query方法 query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法). 2.execute方法 execute用于更新和写入 ...
随机推荐
- C++ { } 的使用场景
{} 可以用于初始化 C++11 中的变量,就像它们用于初始化 C 中的数组和结构一样. {} 主要是为了提供语法的一致性(使用 {} 初始化将在所有上下文中都有效,而使用赋值运算符或()初始化将在特 ...
- linux系统优化命令--day03
用户管理与文件权限 给普通用户授权 root 用户 修改/etc/sudoers文件,文件非常重要, 不可以随意更改 vim /etc/sudoers 如果想要给用户赋予权限,我们要使用这个命令 vi ...
- 01-Redis系列之-Redis介绍安装配置
Redis初识 Redis主要内容 1 redis介绍,特性,安装和配置,典型应用场景 2 单线程架构,5大数据类型操作,通用指令和高级API的使用 3 高级用法(慢查询,管道,shu发布订阅,bit ...
- ThreadPoolExecutor和Executors的区别
Executors创建的线程有两类 newFixedThreadPool和newSingleThreadExecutor,队列数量弹性,创建的线程的队列最大值为INTEGER.max容易造成OOM n ...
- 7、zookeeper应用场景-分布式锁
分布式锁 实现原理:有序节点+watch监听机制实现 分布式锁有多种实现方式,比如通过数据库.redis都可实现.作为分布式协同工具Zookeeper,当然也有着标准的实现方式.下面介绍在zookee ...
- java线程示例
需要开启线程 的方法继承线程类,并在run 中写逻辑 public class Ant extends Thread{ Cake cake; public Ant(String name,Cake ...
- weekToDo - 一个本地todo软件 - 软件推荐 先用着试试
https://weektodo.me/ https://github.com/Zuntek/WeekToDoWeb/releases/download/v1.7.0/WeekToDo-Setup-1 ...
- C++数值类型与string、CString之间的转换
目录 数值范围 数值类型与string互相转换 数值类型转换为string 使用函数模板+ostringstream 使用标准库函数std::to_string() string转换为数值类型 使用函 ...
- Jetpack架构组件学习(0)——总结篇
原文地址:Jetpack架构组件学习(0)--总结篇 | Stars-One的杂货小窝 对之后学习的Jetpack架构开发优点进行简单总结,及对应的文章分类链接 LifeCycle 主要解决将一些初始 ...
- XXL-JOB初探
参考:欢迎点击原文:https://www.xuxueli.com/xxl-job/(官方) https://blog.csdn.net/f2315895270/article/details/104 ...