python 代碼如下:
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
|
# -*- 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數據庫里有兩個表,建表語句如下:
1
2
3
4
5
|
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; |
1
2
3
4
5
|
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; |
插入初始數據
1
|
insert into sum_case (type_id,type_name) values (1,'a'),(2,'b'),(3,'c') |
2)創建user1用戶
1
|
grant select, update,insert on test.* to 'user1'@'localhost' identified by '123456' |
以上這篇python3 pandas 讀取MySQL數據和插入的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/uvyoaa/article/details/74421911