sql >> Databasteknik >  >> RDS >> Mysql

DatabaseError:"inte alla argument konverterade under strängformatering" när jag använder pandas.io.sql.to_sql()

pandas.read_sql använd antingen:

  • ett sqlalchemy-anslutningsobjekt engine.connect()
  • ett db api-objekt endast för sqlite

genom att använda raw_connection() , du har ett db api-anslutningsobjekt, så pandas tror att det är en anslutning till en sqlite-databas (som vi ser i ditt felmeddelande FROM sqlite_master WHERE )

du måste använda 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')))

utgångar:

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')]

som förväntat



  1. Hur kontrollerar jag om MySQL-resultat returneras tomma i PHP?

  2. MySQL – Databas Character Set Encoding and Collation Explained

  3. Kontrollera om användarnamnet finns PDO

  4. hur räknar man rader med första bokstaven?