python 解决mysql where in 对列表(list,,array)问题


Posted in Python onJune 06, 2020

例如有这么一个查询语句:

select * from server where ip in (....)

同时一个存放ip 的列表 :['1.1.1.1','2.2.2.2','2.2.2.2']

我们希望在查询语句的in中放入这个Ip列表,这里我们首先会想到的是用join来对这个列表处理成一个字符串,如下:

>>> a=['1.1.1.1','2.2.2.2','2.2.2.2']
>>> ','.join(a) 
'1.1.1.1,2.2.2.2,2.2.2.2'

可以看到,join后的结果并不是我们想要的结果,因为引号的问题。所以我们会想到另外的办法:

>>> a=['1.1.1.1','2.2.2.2','2.2.2.2']
>>> ','.join(["'%s'" % item for item in a])
"'1.1.1.1','2.2.2.2','2.2.2.2'"

同样会有引号的问题,这个时候我们可以通过这个字符串去掉前后的双引号来达到目的。

但是,其实我们还有一种更安全更方便的方式,如下:

>>> a = ['1.1.1.1','2.2.2.2','3.3.3.3'] 
>>> select_str = 'select * from server where ip in (%s)' % ','.join(['%s'] * len(a)) 
>>> select_str
'select * from server where ip in (%s,%s,%s)'

这里我们先根据Ip列表的长度来生成对应的参数位置,然后通过MySQLdb模块中的execute函数来执行:

cursor.execute(select_str,a)

这样子就可以了

补充知识:python中pymysql使用in时候的传参方式

# 注意这里使用in时候传参的方式 {topic_list}这不用加引号,是因为里面需要的值 topic_id是int
sql = "select f_topic_id, f_topic_name, f_partition_num, f_replicas_factor, f_cluster_id, f_topic_token, f_log_retention_time, f_created_at, f_created_by, f_modified_at, f_modified_by from tkafka_topic where f_topic_id in ({topic_list});".format(topic_list=topic_list)

总结:

以前一开始以为传参是看传过来的参数是什么类型来加引号的,int不加引号,str加引号

但是今天才知道,看的是里面接收参数的变量需要什么类型来加引号的。

以上这篇python 解决mysql where in 对列表(list,,array)问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之玩转字符串(1)
Sep 14 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Flask实现跨域请求的处理方法
Sep 27 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
解析PyCharm Python运行权限问题
Jan 08 Python
使用Pytorch来拟合函数方式
Jan 14 Python
python中wheel的用法整理
Jun 15 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
在python中使用pyspark读写Hive数据操作
Jun 06 #Python
使用Python构造hive insert语句说明
Jun 06 #Python
Python通过kerberos安全认证操作kafka方式
Jun 06 #Python
pandas分批读取大数据集教程
Jun 06 #Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 #Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 #Python
python访问hdfs的操作
Jun 06 #Python
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python实现小世界网络生成
2019/11/21 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
采购类个人求职的自我评价
2014/02/18 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
保密工作承诺书
2014/08/29 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书