一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python MySQLdb使用教程詳解

python MySQLdb使用教程詳解

2021-01-23 00:30FishBear_move_on Python

本文主要內(nèi)容python MySQLdb數(shù)據(jù)庫批量插入insert,更新update的相關(guān)知識,感興趣的朋友跟隨腳本之家小編一起看看吧

本文主要內(nèi)容python MySQLdb數(shù)據(jù)庫批量插入insert,更新update的:

1.python MySQLdb的使用,寫了一個基類讓其他的sqldb繼承這樣比較方便,數(shù)據(jù)庫的ip, port等信息使用json配置文件

2.常見的查找,批量插入更新

python MySQLdb使用教程詳解

下面貼出基類代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# _*_ coding:utf-8 _*_
import MySQLdb
import json
import codecs
# 這個自己改一下啊
from utils.JsonUtil import get_json_from_file
def byteify(input):
  """
  the string of json typed unicode to str in python
  This function coming from stack overflow
  :param input: {u'first_name': u'Guido', u'last_name': u'jack'}
  :return:   {'first_name': 'Guido', 'last_name': 'jack'}
  """
  if isinstance(input, dict):
    return {byteify(key): byteify(value)
        for key, value in input.iteritems()}
  elif isinstance(input, list):
    return [byteify(element) for element in input]
  elif isinstance(input, unicode):
    return input.encode('utf-8')
  else:
    return input
def get_json_from_file(filename):
  with open(filename) as jf:
    jsondata = json.load(jf)
  return byteify(jsondata)
class DbBase(object):
  def __init__(self, **kwargs):
    self.db_config_file = kwargs['db_config_file']
    self.config_db(self.db_config_file)
  def config_db(self, db_config_file):
    data = get_json_from_file(db_config_file)
    host = data['host']
    user = data['user']
    pwd = data['pwd']
    db = data['db']
    port = data['port']
    self.tb_audit_mobile = data['tb_audit_mobile']
    self.conn = MySQLdb.connect(host=host, port=port, user=user, passwd=pwd, db=db, charset="utf8", use_unicode=True)
    self.cursor = self.conn.cursor()

子類的示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class DbAuditTestService(DbBase):
  def __init__(self, **kwargs):
    super(DbAuditTestService, self).__init__(**kwargs)
  def getAdTestURl(self, beg, end):
    sql = """select url, source from tb_name where create_date BETWEEN '%s' and '%s' """ % (beg, end)
    self.cursor.execute(sql)
    res = [row for row in self.cursor]
    return res
  def insert(self, lst_row):
  """batch insert, use ignore 避免索引唯一問題"""
    try:
      insert_sql = 'INSERT ignore INTO tb_ms_mobile_report_test (appid, source) VALUES (%s, %s)'
      self.cursor.executemany(insert_sql, lst_row)
      self.conn.commit()
    except MySQLdb.OperationalError as e:
      logger.info('%s' % e)
      self.cursor.close()
      self.conn.close()
      self.config_db(self.db_config_file)
  def update_ip_info(self, ip_info):
    """
    batch update
      [[voilate_right_rate, ip]]
    :param ip_info:
    :return:
    """
    query = """
        update tb_ms_audit_ip_info set
        ip_right_rate=%s
        where submit_ip=%s """
    self.cursor.executemany(query, ip_info)
    self.conn.commit()
def insert_all():
"""批量操作的示例"""
  db_audit = DbAuditService(db_config_file='../config/mysql_police_audit.json')
  size = db_audit.count()
  db_audit_test = DbAuditTestService(db_config_file='../config/mysql_local_audit.json')
  batch_size = 2000
  for k in xrange(100000, size, batch_size):
    logger.info('query limit %s ~ %s' % (k, batch_size))
    lst_row = db_audit.query_limit(k, batch_size)
    logger.info('convert_rows ')
    lst_row = convert_rows(lst_row)
    db_audit_test.insert(lst_row)

總結(jié)

以上所述是小編給大家介紹的python MySQLdb使用教程詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!

原文鏈接:http://blog.csdn.net/haluoluo211/article/details/77721138

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好男人天堂网 | 午夜精品区 | 日韩视频在线观看中字 | 欧美折磨另类系列sm | 亚洲国产精品福利片在线观看 | pron欧美| 特级夫妻大片免费在线播放 | 亚洲福利视频在线观看 | 青草视频在线观看视频 | 亚洲第一福利视频 | 国产在线看片网站 | 久久水蜜桃亚洲AV无码精品偷窥 | 亚洲欧美天堂综合久久 | α级毛片| 精品蜜臀AV在线天堂 | 国产高清在线视频一区二区三区 | 免费观看一级欧美在线视频 | 久久免费看少妇高潮A片特爽 | 四虎网站| 日本不卡免费新一二三区 | 天堂8在线天堂资源在线 | 成年视频在线观看 | 不良网站在线观看 | 男人的天堂在线 | 亚洲上最大成网人站4438 | 精品区卡一卡2卡三免费 | 精品一区二区三区在线视频观看 | 亚洲一区二区三区在线播放 | 日本免费不卡在线一区二区三区 | 久久精品黄AA片一区二区三区 | 国产三级精品91三级在专区 | 毛片资源 | 精品国产一区二区三区在线 | 98色花堂永久地址国产精品 | 国产免费一区二区 | 欧美亚洲免费 | 五月激激激综合网色播免费 | ass老妇黑森林pic | 免费看又黄又爽又猛的视频软件- | 深夜福利免费在线观看 | 毛片免费毛片一级jjj毛片 |