Python:正则re.sub实现SQL命名占位符替换
2023-09-14 09:07:12 时间
Python 使用mysql-connector-python
和 PyMySQL
模块操作数据库的时候,发现需要使用%s
占位符 和 %(key)s
命名占位符 ,书写起来比较费事。
支持 ?
和:key
作为占位符的数据库操作库还挺多的
Python的SQLite3模块、PHP的Laravel、THinkPHP
这种写法比较简洁,可以少敲键盘
只需要使用re模块对sql进行替换就可以达到效果
# -*- coding: utf-8 -*-
import re
sql = "insert into user (name, age) values (:name, :age)"
compile_sql = re.sub(r":(?P<key>\w+)", r"%(\g<key>)s", sql)
print(compile_sql)
# insert into user (name, age) values (%(name)s, %(age)s)
使用?
占位符
sql = "insert into user (name, age) values (?, ?)"
print(sql.replace("?", "%s"))
# insert into user (name, age) values (%s, %s)
当然,如果不想自己封装数据库操作,可以直接使用MyQuery
Github: https://github.com/mouday/MyQuery
相关文章
- Python开发应用之-SQL 建索引的几大原则
- python应用-判断回文素数
- [Python]Python/PHP如何查询sql server中NTEXT类型数据
- python 使用set对列表去重,并保持列表原来顺序
- mac环境,python+selenium环境搭建,解决chromedriver报错问题
- Python Django 原生SQL查询(游标Cursor)
- Python Django通过牵引文件查看建表sql语句的命令sqlmigrate
- Atitit 提升开发效率 简化设计工具箱 vs 问题诊断 目录 1. 语言类类tool内嵌脚本解释器1 1.1. 脚本语言 php nodejs python1 1.2. Sql1 2. D
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Python语言学习:复杂函数(yield/@property)使用方法、案例应用之详细攻略
- 小白能学好Python吗 Python学习费用大概多少
- 〖Python 数据库开发实战 - MySQL篇⑯〗- SQL 语句的条件查询
- python采集最新世界大学排名, 来看看你的母校上榜没~
- 【阶段二】Python数据分析Pandas工具使用11篇:探索性数据分析:数据的检验:卡方检验与t检验
- python requests使用登陆之后的cookie
- 【华为机试真题 Python实现】拼接 URL【2022 Q1 Q2 |100分】
- Python模块Typing.overload的使用
- Python编程:判断字符串中是否包含中文
- Python编程:pycharm同级目录导入模块报错问题
- Python编程:records库操作SQL查询MySQL数据库
- Python编程:tornado实现WebSocket通讯
- ubuntu安装python-pip3和python-pip
- python web py入门(41)- 页面事件的onload事件
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
- 【2022天府杯数学建模】A题 仪器故障智能诊断技术 一等奖总结及Python实现代码
- SQL和Python 哪个更容易自学?