Mysql
 sql >> база данни >  >> RDS >> Mysql

DatabaseError :„не всички аргументи се преобразуват по време на форматиране на низ“, когато използвам pandas.io.sql.to_sql()

pandas.read_sql използвайте едно от двете:

  • обект за връзка sqlalchemy engine.connect()
  • db api обект само за sqlite

с помощта на raw_connection() , имате db api обект за връзка, така че pandas вярва, че това е връзка към sqlite база данни (както виждаме във вашата грешка FROM sqlite_master WHERE )

трябва да използвате 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')))

изходи:

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

както се очаква



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. защо това ляво присъединяване връща само един запис?

  2. Как да се свържа с MySQL с помощта на UTF8 в рамките на perl скрипт?

  3. MySQL:защо тази макс. N членове на групова заявка работи?

  4. Избиране срещу подмножества на списък в MySQL

  5. Код на грешка:1406. Данните са твърде дълги за колона - MySQL