python3 pandas 读取MySQL数据和插入的实例

时间:2022-04-13 19:05:46

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