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

Wstaw listę Pythona (JSON lub inną) do bazy danych MySQL

Musisz pozwolić bibliotece MySQL na obsługę parametrów za Ciebie; ma to tę dodatkową zaletę, że pozwala MySQL na przygotowanie instrukcji, dzięki czemu wielokrotne wstawianie jest również szybsze:

cur = con.cursor()    
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))

Zobacz specyfikacje Python DB API 2.0 aby uzyskać (niektóre) więcej szczegółów na temat sparametryzowanego SQL. Dokładne obsługiwane formaty parametrów są udokumentowane dla adaptera bazy danych, więc to również sprawdź. Na przykład moduł MySQLdb naśladuje składnię formatowania ciągu Pythona i używa %s jako symbole zastępcze:

sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"

Inne możliwe opcje parametrów to liczby (:1, :2 itp.), nazwy (:foo, :bar ) lub inną formę formatowania ciągu Pythona, nazwane specyfikatory formatu:(%(foo)s, %(bar)s ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać różnicę między dwiema datami w zaokrągleniu do godzin?

  2. Jak korzystać z mysql JOIN bez warunku ON?

  3. SQL - AS - tabela nie istnieje - 1146

  4. mysqldump eksportuje tylko jedną tabelę

  5. przydziel plik tylko do jednej bazy danych