最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pymysql 插入數(shù)據(jù) 轉(zhuǎn)義處理方式

 更新時(shí)間:2020年03月02日 10:14:29   作者:匿名姐姐  
今天小編就為大家分享一篇pymysql 插入數(shù)據(jù) 轉(zhuǎn)義處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最近用pymysql把一些質(zhì)量不是很高的數(shù)據(jù)源導(dǎo)入mysql數(shù)據(jù)庫(kù)的時(shí)候遇到一點(diǎn)問(wèn)題,主要是遇到像 \ 這樣的具有特殊意義的字符時(shí)比較難處理。這里有一個(gè)解決方案

基本環(huán)境

python3
pymysql
linux

問(wèn)題描述

插入(查詢)數(shù)據(jù)時(shí)遇到一些特殊字符會(huì)使得程序中斷。操作失敗。比如 \這樣的轉(zhuǎn)義字符

解決方案

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

代碼示例

import pymongo

sql_pattern = "select * from my_collection where name = %s" #注意,這里直接用%s,不要給%s加引號(hào),因?yàn)楹竺孓D(zhuǎn)移過(guò)后會(huì)自動(dòng)加引號(hào)
name = "xxx\xxx"
name = connection.escape(name)
sql = sql_pattern%name
print(sql) # select * from my_collection where name = 'xxx\\xxx'

with connection.cursor() as cursor:
 try:
  cursor.execute(sql)
 except:
  print(sql)
  pass
 for r in cursor:
  print(r)

補(bǔ)充拓展:利用 pymysql 往數(shù)據(jù)庫(kù)插入百萬(wàn)條數(shù)據(jù)

思路:

先創(chuàng)建一個(gè)自定義的數(shù)據(jù)庫(kù)表;

生成一個(gè)列表,列表中的數(shù)據(jù)應(yīng)該和數(shù)據(jù)庫(kù)表中的每一列對(duì)應(yīng);

利用cursor.executemany 批量插入列表中的數(shù)據(jù)。

注意點(diǎn):

批量添加數(shù)據(jù)時(shí),數(shù)據(jù)格式必須list[tuple(),tuple(),tuple()] 或者tuple(tuple(),tuple(),tuple())

代碼解析:

# -*- coding: utf-8 -*-
# Author:benjamin

import pymysql

# 創(chuàng)建連接
conn = pymysql.connect(host='192.168.214.128', port=3306, user='root', passwd='ben123', db='db2')

# 創(chuàng)建游標(biāo)
cursor = conn.cursor()

def createTable():
 '''
 創(chuàng)建數(shù)據(jù)庫(kù)表
 :return:
 '''
 
 try:
  sql = '''
   create table mytable (
   nid int not null auto_increment primary key,
   name varchar(255) not null,
   email varchar(255) not null,
   extra text
   )engine=innodb default charset=utf8
  '''
  cursor.execute(sql)
  conn.commit()
  print('create table ok!')
 except Exception as e:
  print(e)


def myList(value):
 '''
 生成一個(gè)列表,[('admin1', 'admin1qq.com', 'hahaadmin1'),...]
 :param value: 自定義的數(shù)據(jù)量
 :return: new_list
 '''
 new_list = [] # 新建一個(gè)空列表用來(lái)存儲(chǔ)元組數(shù)據(jù)

 for i in range(1, value + 1):

  name = 'admin'+ str(i)
  email = name + '@qq.com'
  extra = 'I am '+ name

  tup = (name,email,extra) # 構(gòu)造元組
  new_list.append(tup) # [(),(),()...]

 print("*"*5+"generate list ok"+"*"*5)
 return new_list


def myInsert(newList):
 '''
 數(shù)據(jù)庫(kù)插入
 :param newList: 傳入的列表數(shù)據(jù)
 :return:
 '''

 try:
  sql = "insert into mytable(name,email,extra) values(%s,%s,%s)" # 要插入的數(shù)據(jù)
  cursor.executemany(sql,newList) # 執(zhí)行插入數(shù)據(jù)

  conn.commit()
  cursor.close()
  conn.close()
  print('insert ok')
 except Exception as e:
  print(e)


if __name__ == '__main__':

 # 創(chuàng)建數(shù)據(jù)表
 createTable()
 # 選擇要插入的數(shù)據(jù)量
 value = 1000000 # 定義數(shù)據(jù)量
 newList = myList(value)
 myInsert(newList)

以上這篇pymysql 插入數(shù)據(jù) 轉(zhuǎn)義處理方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例

    pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例

    今天小編就為大家分享一篇pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python 制作本地應(yīng)用搜索工具

    python 制作本地應(yīng)用搜索工具

    這篇文章主要介紹了python 制作本地應(yīng)用搜索工具的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • python實(shí)現(xiàn)字符串加密 生成唯一固定長(zhǎng)度字符串

    python實(shí)現(xiàn)字符串加密 生成唯一固定長(zhǎng)度字符串

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)字符串加密,生成唯一固定長(zhǎng)度字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python刪除過(guò)期文件的方法

    python刪除過(guò)期文件的方法

    這篇文章主要介紹了python刪除過(guò)期文件的方法,涉及Python日期與文件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • Python使用Pandas生成日?qǐng)?bào)的實(shí)現(xiàn)代碼

    Python使用Pandas生成日?qǐng)?bào)的實(shí)現(xiàn)代碼

    Pandas是Python中一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),它提供了許多功能強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,在本文中,我們將介紹Pandas的基本概念和如何使用它生成一個(gè)包含今天到未來(lái)20個(gè)工作日的日期列表的Excel文件,需要的朋友可以參考下
    2023-11-11
  • Python 異常處理Ⅳ過(guò)程圖解

    Python 異常處理Ⅳ過(guò)程圖解

    這篇文章主要介紹了Python 異常處理Ⅳ過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 使用python去除圖片白色像素的實(shí)例

    使用python去除圖片白色像素的實(shí)例

    今天小編就為大家分享一篇使用python去除圖片白色像素的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python函數(shù)的重新定義及練習(xí)

    python函數(shù)的重新定義及練習(xí)

    這篇文章主要為大家詳細(xì)介紹了python的函數(shù),使用python,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 跟老齊學(xué)Python之折騰一下目錄

    跟老齊學(xué)Python之折騰一下目錄

    本講只關(guān)注os.path,真所謂“弱水三千,只取一瓢”,為什么這么偏愛(ài)它呢?因?yàn)樗颓懊嬉呀?jīng)講過(guò)的文件操作進(jìn)行配合,就能夠隨心所欲操作各個(gè)地方的文件了
    2014-10-10
  • Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法

    Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法

    今天小編就為大家分享一篇Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論

洪洞县| 安西县| 阿克| 台北县| 汾西县| 乾安县| 莆田市| 安徽省| 株洲市| 都匀市| 台北县| 合阳县| 商洛市| 且末县| 兰州市| 商水县| 萝北县| 阜平县| 凤山县| 顺昌县| 故城县| 黄平县| 普宁市| 白山市| 华宁县| 浏阳市| 五寨县| 贵港市| 右玉县| 道孚县| 宜兴市| 久治县| 蒙山县| 新营市| 剑阁县| 海城市| 偃师市| 共和县| 兴隆县| 沅江市| 石棉县|