zoukankan      html  css  js  c++  java
  • Python访问数据库

     1 def writeToDB(data):
     2     try:
     3         with conn.cursor() as cur:
     4             for i in range(len(data)):
     5                 # get sql
     6                 cur.execute(writing_sql)
     7         conn.commit()
     8 
     9     except Exception:
    10         print('There is exception happened!', Exception)
    11         traceback.print_exc()
    12         conn.rollback()
    13     finally:
    14         conn.close()
    15 
    16 conn = pymysql.connect(user="root", password="root", database=write_db, host="127.0.0.1", charset='utf8')
    17 for chunk in reader:
    18     data = chunk.values
    19     db_data = []
    20     for item in data:
    21         db_data.append(item[0].split("	"))
    22     db_data = np.array(db_data)
    23     writeToDB(db_data)

       之前总是报错,说是Connection Already Close;后来才发现是因为写法的问题;在writeToDB的函数中,执行完毕后,将会执行final里面的关闭链接;

      但是,其实访问并没有完事,在writeToDB外围还有一层循环,后续还是会继续访问数据库,但是此时链接已经关闭,于是导致了这个问题。后来做了调整,在writeToDB的调用层实现了finally,在writeToDB内部只有exception的异常捕捉。

  • 相关阅读:
    linux:yum
    python:公共操作
    python 控制流程
    linux:lamp环境
    linux:nginx
    深圳:永安在线-安全
    linux:mysql
    linux:shell
    linux:项目上线
    linux:权限管理
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/11256688.html
Copyright © 2011-2022 走看看