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的异常捕捉。

原文地址:https://www.cnblogs.com/xiashiwendao/p/11256688.html