Maison  >  Article  >  développement back-end  >  python3 pandas lit les données MySQL et les insère

python3 pandas lit les données MySQL et les insère

不言
不言original
2018-04-20 13:57:384561parcourir

Ce qui suit est un exemple de lecture et d'insertion de données MySQL avec des pandas python3. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Venez jeter un oeil ensemble

Le code python est le suivant :


# -*- 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()


Il y a d'autres choses à noter.

1) Il y a deux tables dans la base de données de test. Les instructions de création de table sont les suivantes :


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;


Insérer les données initiales


insert into sum_case (type_id,type_name) values (1,'a'),(2,'b'),(3,'c')


2) Créer un utilisateur1


grant select, update,insert on test.* to 'user1'@'localhost' identified by '123456'


Recommandations associées :

Méthode Python d'extraction des enregistrements d'emplacement spécifiés après le regroupement groupby



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn