sql >> Database >  >> RDS >> Mysql

DatabaseError:"niet alle argumenten geconverteerd tijdens het formatteren van strings" wanneer ik pandas.io.sql.to_sql() gebruik

pandas.read_sql gebruik ofwel:

  • een sqlalchemy-verbindingsobject engine.connect()
  • een db api-object alleen voor sqlite

door raw_connection() . te gebruiken , je hebt een db api-verbindingsobject, dus pandas denkt dat het een verbinding is met een sqlite-database (zoals we zien in je fout FROM sqlite_master WHERE )

je moet con = engine.connect() . gebruiken

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

uitgangen:

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

zoals verwacht



  1. Database naamgevingsconventies door Microsoft?

  2. SSH-tunneling gebruiken als VPN-alternatief

  3. VERVANG nieuw regelteken in MYSql werkt niet

  4. Java-slaapstand Controleer of MySQL-replicatie gesynchroniseerd is