sql >> Databáze >  >> RDS >> Mysql

DatabaseError:„ne všechny argumenty převedeny během formátování řetězce“, když používám pandas.io.sql.to_sql()

pandas.read_sql použijte buď:

  • objekt připojení sqlalchemy engine.connect()
  • objekt db api pouze pro sqlite

pomocí raw_connection() , máte objekt připojení db api, takže pandas věří, že se jedná o připojení k databázi sqlite (jak vidíme ve vaší chybě FROM sqlite_master WHERE )

musíte použít con = engine.connect()

import sqlalchemy
import pandas
engine = sqlalchemy.create_engine('...')
with engine.connect() as conn:
    print('sqla:', list(conn.execute('select * from users')))
    df = pandas.read_sql('select * from users', conn)
    print('df:', df)
    df.to_sql('users2', conn)
    print('sqla:', list(engine.connect().execute('select * from users2')))

výstupy:

sqla: [(1, 'toto'), (2, 'titi'), (3, 'tutu'), (4, 'tata')]
df:    id  name
0   1  toto
1   2  titi
2   3  tutu
3   4  tata
sqla: [(1, 'toto'), (2, 'titi'), (3, 'tutu'), (4, 'tata')]

podle očekávání



  1. chyba při čtení tabulek členství v asp.net v MySQL

  2. Jak najít duplicitní záznamy pomocí klauzule Seskupit podle a mít v SQL Server - SQL Server / Výukový program TSQL část 132

  3. Jak nastavím časové pásmo MySQL?

  4. Django jedinečné společně selhání omezení?