Mysql
 sql >> Database >  >> RDS >> Mysql

Elaborazione dei parametri di formato non riuscita con mysql.connector in Python

La prima opzione è il modo corretto per inserire i parametri della query nella query:è chiamata query parametrizzata . In questo caso, stai consentendo al driver del database di eseguire l'escape dei parametri della query, inserirli in modo sicuro nella query e gestire le conversioni di tipo Python-to-MySQL.

L'errore che ricevi significa che non è stato possibile convertire uno degli ID , Record , Latitude , Longitude o code valori dei parametri a un tipo di database MySQL valido. Per essere precisi, guarda i tipi di variabili che hai pubblicato:

ID        <type 'unicode'> 
Record    <type 'unicode'>
Latitude  <class 'bs4.element.NavigableString'>
Longitude <class 'bs4.element.NavigableString'>
code      <type 'unicode'>

Il problema è con Latitude e Longitude - sono BeautifulSoup NavigableString istanze di classe - il convertitore MySQL ha difficoltà a capire come convertire un NavigableString oggetto in un tipo MySQL valido. Convertili in stringhe in modo esplicito in anticipo:

update = """
    INSERT INTO 
        myDB.newtable 
        (ID,Record,Latitude,Longitude,code) 
    VALUES 
        (%s,%s,%s,%s,%s)
"""
cursor2.execute(update, (ID, Record, str(Latitude), str(Longitude), code))