Mysql
 sql >> Baza danych >  >> RDS >> Mysql

DatabaseError:„nie wszystkie argumenty przekonwertowane podczas formatowania ciągu” gdy używam pandas.io.sql.to_sql()

pandas.read_sql użyj albo:

  • obiekt połączenia sqlalchemy engine.connect()
  • obiekt db api tylko dla sqlite

za pomocą raw_connection() , masz obiekt połączenia db api, więc pandas uważa, że ​​jest to połączenie z bazą danych sqlite (jak widzimy w twoim błędzie FROM sqlite_master WHERE )

musisz użyć 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')))

wyjścia:

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

zgodnie z oczekiwaniami



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd migracji Lumen 5.6 Podany klucz był za długi, maksymalna długość klucza to 767 bajtów

  2. Liczba scaleń Mysql w wielu kolumnach

  3. Napraw „BŁĄD 1222 (21000):Użyte instrukcje SELECT mają inną liczbę kolumn” podczas korzystania z UNION w MySQL

  4. Konwertuj ciąg znaków w Pythonie, aby wstawić datę do kolumny daty w bazie danych MySQL

  5. Wstaw MYSQL tam, gdzie nie istnieje z PDO