首頁 > 後端開發 > Python教學 > python3 pandas 讀取MySQL資料和插入

python3 pandas 讀取MySQL資料和插入

不言
發布: 2018-04-20 13:57:38
原創
4619 人瀏覽過

下面要為大家分享一篇python3 pandas 讀取MySQL資料和插入的實例,具有很好的參考價值,希望對大家有幫助。一起來看看吧

python 程式碼如下:


# -*- coding:utf-8 -*-
import pandas as pd
import pymysql
import sys
from sqlalchemy import create_engine

def read_mysql_and_insert():
 
 try:
  conn = pymysql.connect(host='localhost',user='user1',password='123456',db='test',charset='utf8')
 except pymysql.err.OperationalError as e:
  print('Error is '+str(e))
  sys.exit()
  
 try:
  engine = create_engine('mysql+pymysql://user1:123456@localhost:3306/test')
 except sqlalchemy.exc.OperationalError as e:
  print('Error is '+str(e))
  sys.exit()
 except sqlalchemy.exc.InternalError as e:
  print('Error is '+str(e))
  sys.exit()
  
 try: 
  sql = 'select * from sum_case'
  df = pd.read_sql(sql, con=conn) 
 except pymysql.err.ProgrammingError as e:
  print('Error is '+str(e))
  sys.exit() 

 print(df.head())
 df.to_sql(name='sum_case_1',con=engine,if_exists='append',index=False)
 conn.close()
 print('ok')
 
if __name__ == '__main__': 
 df = read_mysql_and_insert()
登入後複製


##另外要注意的還有。

1) test資料庫裡有兩個表,建表語句如下:


CREATE TABLE `sum_case` ( 
 `type_id` tinyint(2) DEFAULT NULL, 
 `type_name` varchar(5) DEFAULT NULL, 
 KEY `b` (`type_name`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
登入後複製



CREATE TABLE `sum_case_1` ( 
 `type_id` tinyint(2) DEFAULT NULL, 
 `type_name` varchar(5) DEFAULT NULL, 
 KEY `b` (`type_name`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
登入後複製


插入初始資料


insert into sum_case (type_id,type_name) values (1,'a'),(2,'b'),(3,'c')
登入後複製


2)建立user1使用者


#

grant select, update,insert on test.* to 'user1'@'localhost' identified by '123456'
登入後複製


相關推薦:

Python在groupby分組後擷取指定位置記錄方法



################################# #####

以上是python3 pandas 讀取MySQL資料和插入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板