sql >> Databasteknik >  >> RDS >> Mysql

Det gick inte att bearbeta formatparametrar med mysql.connector i Python

Det första alternativet är det korrekta sättet att lägga in frågeparametrar i frågan - det kallas en parameteriserad fråga . I det här fallet låter du databasdrivrutinen undkomma frågeparametrarna, infoga dem säkert i frågan och hantera konverteringar av Python-till-MySQL-typ.

Felet du får betyder att det inte kunde konvertera ett av ID , Record , Latitude , Longitude eller code parametervärden till en giltig MySQL-databastyp. För att vara specifik, se de variabeltyper du har lagt upp:

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

Problemet är med Latitude och Longitude - de är BeautifulSoup s NavigableString klassinstanser - MySQL-omvandlaren har svårt att förstå hur man konverterar en NavigableString objekt till en giltig MySQL-typ. Konvertera dem till strängar uttryckligen i förväg:

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



  1. Hitta det maximala antalet år i följd för varje ID i en tabell (Oracle SQL)

  2. Hur kan jag lösa ett anslutningspoolproblem mellan ASP.NET och SQL Server?

  3. Hur överför man pandas DataFrame till Microsoft SQL Server-tabellen?

  4. Skickar tabellnamn som en parameter i psycopg2