sql >> Base de Datos >  >> RDS >> Mysql

Error al procesar los parámetros de formato con mysql.connector en Python

La primera opción es la forma correcta de poner parámetros de consulta en la consulta:se denomina consulta parametrizada . En este caso, está permitiendo que el controlador de la base de datos escape de los parámetros de consulta, los inserte de forma segura en la consulta y maneje las conversiones de tipo Python a MySQL.

El error que está recibiendo significa que no pudo convertir uno de los ID , Record , Latitude , Longitude o code valores de parámetro a un tipo de base de datos MySQL válido. Para ser específicos, vea los tipos de variables que ha publicado:

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

El problema es con Latitude y Longitude - son BeautifulSoup NavigableString instancias de clase:el convertidor de MySQL tiene dificultades para entender cómo convertir un NavigableString objeto en un tipo MySQL válido. Conviértalos en cadenas explícitamente de antemano:

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