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

Brug af en Python-dict til en SQL INSERT-sætning

Jeg tror, ​​at kommentaren om at bruge dette med MySQL ikke er helt komplet. MySQLdb laver ikke parametersubstitution i kolonnerne, kun værdierne (IIUC) - så måske mere som

placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
# valid in Python 2
cursor.execute(sql, myDict.values())
# valid in Python 3
cursor.execute(sql, list(myDict.values()))

Du slipper dog ikke for kolonnerne, så du vil måske tjekke dem først...

Se http://mail.python.org/pipermail/tutor/ 2010-december/080701.html for en mere komplet løsning



  1. Udførelse af dataændringsrevision ved hjælp af tidsmæssig tabel

  2. SELECT-forespørgsel returnerer 1 række fra hver gruppe

  3. Sådan nulstilles/ændres MySql root-adgangskode-kommandolinjen i ubuntu linux

  4. Hvordan bruger man SqlCommand til at OPRETTE DATABASE med parameteriseret db-navn?