Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Erro ao utilizar a engine

Olá!

Após executar o comando dados.to_sql('clientes', engine, index=False) obtive o seguinte warning:

UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. dados.to_sql('clientes', engine, index=False)

E o seguinte erro:

AttributeError: 'Engine' object has no attribute 'cursor'

Obs:

  1. Estou realizando o curso usando o VS Code na minha máquina.
  2. A versão do sqlalchemy instalada é a 1.4.52.
  3. A engine foi criada como na aula, utilizando o comando engine = create_engine('sqlite:///:memory:').
  4. Já reiniciei o notebook porém o erro continua.
3 respostas
solução!

Oii, Estudante! Tudo bem?

Peço desculpas pela demora em obter um retorno.

Esse erro devido ao Pandas esperar uma conexão com uma interface específica, mas a engine do SQLAlchemy não fornece diretamente essa interface.

Como sugestão, atualize o SqlAlchemy para uma versão mais atual, para evitar bugs como este. Você pode usar o comando:

pip install sqlalchemy --upgrade

Outro detalhe, no momento de realizar a consulta dados.to_sql('clientes', engine, index=False) adicione o con=engine porque o parâmetro con especifica a conexão com o banco de dados onde a tabela será criada. Exemplo:

dados.to_sql('clientes', con=engine, index=False, if_exists='replace')

O if_exists='replace' foi adicionado no código acima para substituir a tabela se ela já existir.

Realize os testes de acordo com o seu código no VS Code e observe se funciona como esperado. Lembrando que, inicialmente, indicamos que realize as aulas com o mesmo ambiente que a Instrutora indica, pois o Google Colab contém todo um suporte tecnicamente para realizar as análises durante a formação.

Espero ter ajudado. Qualquer dúvida, conte conosco.

Bons estudos e um abraço!

Olá!!! tudo bem?

Pelo que você descreveu, parece que o problema está relacionado à configuração do SQLAlchemy. Aqui estão algumas dicas para tentar resolver o problema:

  1. Verifique a Importação do SQLAlchemy: Certifique-se de que está importando o create_engine corretamente:
from sqlalchemy import create_engine
  1. Criação da Engine: O comando que você usou para criar a engine está correto:
engine = create_engine('sqlite:///:memory:')

Porém, assegure-se de que não há nenhuma tipagem ou erro de digitação.

  1. Verifique a Versão do Pandas: Assegure-se de que sua versão do Pandas está atualizada. Às vezes, compatibilidades de versões podem causar problemas:
pip install --upgrade pandas
  1. Testar a Conexão com o Banco de Dados: Tente executar um comando simples para verificar se a conexão está funcionando:
connection = engine.connect()
print(connection)
connection.close()

Se isso funcionar sem problemas, significa que a engine está configurada corretamente.

  1. Utilização do to_sql: Certifique-se de que está utilizando a função to_sql de forma correta:
dados.to_sql('clientes', con=engine, index=False)

Espero que essas dicas ajudem a resolver o problema! Qualquer dúvida adicional, sinta-se à vontade para perguntar.

Bons estudos :)

Boa tarde Valquíria e Nathália, obrigado pelas respostas!

Aparentemente, as novas versões da biblioteca Pandas já são compatíveis com a SQLAlchemy. Então a instrução da aula anterior sobre fazer o downgrade da sqlalchemy já não é mais necessária nas novas versões do Pandas.

Versão do Pandas: 2.2.2

Versão do SQLAlquemy: 2.0.30

Obrigado!