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在多玩图片上下载妹子图的实现代码
Aug 13 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python如何调用java类
Jul 05 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 22 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php使用PDO方法详解
2014/12/27 PHP
Redis构建分布式锁
2017/03/28 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
对比分析json及XML
2014/11/28 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
Python中常见的数制转换有哪些
2020/05/27 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
网络书店创业计划书
2014/02/07 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
班主任寄语2016
2015/12/04 职场文书
检举信的写法
2019/04/10 职场文书
nginx结合openssl实现https的方法
2021/07/25 Servers
Python 正则模块详情
2021/11/02 Python