pymysql插入数据转义处理方式

  

最近用pymysql把一些质量不是很高的数据源导入mysql数据库的时候遇到一点问题,主要是遇到像\这样的具有特殊意义的字符时比较难处理。这里有一个解决方案

  

<>强基本环境

  
  

python3
  pymysql
  linux

     

<强>问题描述

  

插入(查询)数据时遇到一些特殊字符会使得程序中断。操作失败。比如\这样的转义字符

  

<>强解决方案

  

插入(查询)之前用connection.escape (str)处理一下即可

  

<强>代码示例

        进口pymongo      从my_collection sql_pattern=" select * name=% s " #注意,这里直接用% s,不要给% s加引号,因为后面转移过后会自动加引号   name=" xxx \ xxx”   name=connection.escape(名字)   sql=sql_pattern %的名字   打印(sql) # select *从my_collection name=' xxx xxx \ \ '      光标connection.cursor ():   试一试:   cursor.execute (sql)   除了:   打印(sql)   通过   r的游标:   打印(右)   之前      

  

<>强思路:

  

先创建一个自定义的数据库表;

  

生成一个列表,列表中的数据应该和数据库表中的每一列对应的;

  

利用游标。executemany批量插入列表中的数据。

  

<强>注意点:

  

批量添加数据时,数据格式必须列表(元组()元组()元组())或者元组(tuple()元组()元组())

  

<强>代码解析:

        # - * -编码:utf - 8 - *   #作者:本杰明      进口pymysql      # 创建连接   康涅狄格州=pymysql.connect(主机=192.168.214.128,端口=3306,用户=?passwd=ben123, db=癲b2”)      #创建游标   光标=conn.cursor ()      def不知道():   “‘   创建数据库表   返回:   “‘      试一试:   sql=?   创建表mytable (   nid int not null auto_increment主键,   名字varchar(255)非空,   电子邮件varchar(255)非空,   额外的文本=innodb默认字符集=utf8)引擎   “‘   cursor.execute (sql)   conn.commit ()   print(创建表好了!)   除了例外e:   打印(e)         def myList(价值):   “‘   生成一个列表,(“admin1”、“admin1qq.com”,“hahaadmin1”),…]   :参数值:自定义的数据量   返回:new_list   “‘   new_list=[] #新建一个空列表用来存储元组数据      我的范围(1,值+ 1):      name='管理' + str(我)   电子邮件=名称+“@qq.com”   额外的=拔摇?名字      锤头=(名称、电子邮件、额外)#构造元组   new_list.append(锤头)#【(),(),()…]      打印(“*”* 5 +“生成列表ok”+“*”* 5)   返回new_list         def myInsert (newList):   “‘   数据库插入   :param newList:传入的列表数据   返回:   “‘      试一试:   sql="插入mytable(名称、电子邮件、额外)值(% s, % s % s)”#要插入的数据   newList cursor.executemany (sql) #执行插入数据      conn.commit ()   cursor.close ()   conn.close ()   打印(“插入行”)   除了例外e:   打印(e)         if __name__==癬_main__”:      #创建数据表   不知道()   #选择要插入的数据量   值=https://www.yisu.com/zixun/1000000定义数据量   newList=myList(值)   myInsert (newList)      

以上这篇pymysql插入数据转义处理方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

pymysql插入数据转义处理方式