[O mais completo] Python se conecta ao banco de dados para buscar e gravar dados

Seja fazendo análise de dados ou modelagem de controle de risco, é inevitável buscar dados no banco de dados e gravá-los no banco de dados. Este artigo classifica os diferentes métodos de conexão ao banco de dados, bem como dados de gravação única e dados de gravação em lote. Todos os códigos são testados e disponibilizados, sendo efetivamente aplicados na produção, e compartilhados com mais amigos que encontram dificuldades nesse sentido. Se você deseja enviar regularmente os resultados da análise após buscar os dados para o pessoal relevante, consulte [Produtos secos] Use Python para enviar e-mails de monitoramento regularmente todos os dias .

  

1. Método 1 de conexão ao banco de dados (pymysql)

  
Primeiro, é apresentado o primeiro método de conexão ao banco de dados. O código específico é o seguinte:

import pymysql
import numpy as np 
import pandas as pd

#36数据库
conn = pymysql.connect(host='ip', user='用户名', passwd='密码', db='数据库名')
#建立连接,host中填mysql服务器所在的主机的ip,user中填为用户名,passwd中填密码,db中填数据库名
sql = ''' select * from  credit_approve_result limit 3'''
date = pd.read_sql_query(sql, conn)

A ideia principal é importar primeiro a biblioteca e depois preencher informações como ip, nome de usuário, senha e nome do banco de dados para estabelecer a conexão. Em seguida, defina a instrução de consulta SQL para consulta de dados. Se você tiver alguma dúvida sobre a função pymysql, pode consultar o artigo histórico no relato oficial do " Código de Ali Yiyang ": Perceba a necessidade do Python se conectar ao banco de dados .
  
  

2. Método 2 de conexão ao banco de dados (create_engine)

  
Em seguida, introduza o segundo método de conexão ao banco de dados, o código específico é o seguinte:

import pandas as pd 
from sqlalchemy import create_engine

conn = create_engine('mysql+pymysql://user:passwd@ip:3306/db',encoding='utf8')
#建立连接,user替换为用户名,passwd替换为密码,ip替换为mysql服务器所在的主机的ip,db中填数据库名
sql = ''' select * from  credit_approve_result limit 3'''
date = pd.read_sql_query(sql, conn)

A ideia principal é importar primeiro a biblioteca e depois preencher o nome de usuário, senha, nome do banco de dados e outras informações para estabelecer uma conexão, sendo 3306 a porta padrão. Em seguida, defina a instrução de consulta SQL para consulta de dados. Verifica-se que os dois métodos de ligação são muito semelhantes, mas a biblioteca utilizada é diferente, a forma de preenchimento das informações é diferente e os passos gerais são os mesmos.

  
  

3. Importe dados para o banco de dados

  
Agora que acabamos de ler os dados do banco de dados, vamos tentar importar o resultado da busca sql para a nova tabela. O código específico é o seguinte:

conn = create_engine('mysql+pymysql://user:passwd@ip:3306/test',encoding='utf8')
#建立连接,user替换为用户名,passwd替换为密码,ip替换为mysql服务器所在的主机的ip
date.to_sql("jlkj_cs", conn, if_exists='replace', index=False)

O código acima serve para importar os dados de data para a tabela jlkj_cs da biblioteca de teste. Se esta tabela existia antes, substitua esta tabela pelos dados de data.

  
  

4. Adicione uma pequena quantidade de dados linha por linha

  

Para que todos vejam com mais clareza a lógica de busca de dados, gravação de dados e anexação de dados. Esta seção resume o conteúdo das seções anteriores e adiciona uma linha de código para escrever uma pequena quantidade de dados linha por linha. detalhes como segue:

import pandas as pd
import pymysql.cursors
from sqlalchemy import create_engine

#读取数据
conn = create_engine('mysql+pymysql://user:passwd@ip:3306/temp_data_2',encoding='utf8')
jxb_sx_head3 = pd.read_sql('''select session_id, customerName from xb_policy_sxall limit 3''',conn)

#写入数据
conn = create_engine('mysql+pymysql://user:passwd@ip:3306/test',encoding='utf8')
jxb_sx_head3.to_sql("jlkj_cs", conn, if_exists='replace', index=False)

#单条插入数据
conn = pymysql.connect(host='ip',user = "用户名", passwd = "密码", db = "test")
cursor = conn.cursor()
cursor.executemany(
"insert into jlkj_cs values(%s, %s)",
[
('OT111', '张一'),
('OT112', '张二')
]
)
conn.commit()

#检查是否插入成功
conn = pymysql.connect(host='ip',user = "用户名", passwd = "密码", db = "test")
cs_add_date = pd.read_sql('''select * from jlkj_cs''',conn)
cs_add_date

obtive a resposta:

foto

  
  

5. Adicione e grave dados em lotes

  
Na quarta seção, foi introduzido o método de gravação de dados um por um.Esta seção apresenta o método de anexar diretamente o quadro de dados à tabela do banco de dados. O código específico é o seguinte:

conn = create_engine('mysql+pymysql://user:passwd@ip:3306/test',encoding='utf8')
date_pl.to_sql(name='jlkj_cs', con=conn, if_exists='append', index=False, index_label=False)
cs_add_date2 = pd.read_sql('''select * from jlkj_cs''',conn)
cs_add_date2

obtive a resposta:

、

Os dados em date_pl precisam ser consistentes com os dados gravados na tabela. Até agora, a conexão Python com o banco de dados para buscar e gravar dados foi explicada, e amigos que precisarem podem seguir o código e tentar a imagem novamente.

[ Acesso gratuito por tempo limitado ao grupo ] O grupo fornece informações de recrutamento relacionadas ao aprendizado de Python, brincadeiras com Python, modelagem de controle de risco, inteligência artificial e análise de dados, excelentes artigos, vídeos de aprendizagem e também pode trocar problemas relacionados encontrados na aprendizagem e trabalhar. Amigos que precisarem podem adicionar o ID do WeChat 19967879837 e adicionar tempo para anotar os grupos aos quais desejam ingressar, como modelagem de controle de risco.
  
Você pode estar interessado em:
Desenhar Pikachu em PythonUsar
Python para desenhar nuvens de palavrasReconhecimento
facial em Python - você é o único aos meus olhosPython
desenha um lindo mapa do céu estrelado (lindo fundo)
Use a biblioteca py2neo em Python para operar o neo4j e construir um mapa de associaçãoPython
coleção de código-fonte de confissão de romance (amor, rosa, parede de fotos, confissão sob as estrelas)

Acho que você gosta

Origin blog.csdn.net/qq_32532663/article/details/132381264
Recomendado
Clasificación