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

Ved hjælp af Python kan du hurtigt indsætte mange kolonner i Sqlite\Mysql

Med "Nye data er liste over x kolonner", forestiller jeg mig, at du mener x tupler , siden fortsætter du med at tale om "den første tuple". Hvis Newdata er en liste over tupler, y = len(Newdata[0]) er antallet af genstande i den første af disse tupler.

Forudsat at det er det antal, du ønsker (og alle tupler må hellere have det samme antal elementer, ellers executemany vil mislykkes!), er den generelle idé i @Nathans svar rigtig:byg strengen med det passende antal kommaseparerede spørgsmålstegn:

holders = ','.join('?' * y)

indsæt det derefter i resten af ​​SQL-sætningen. @Nathans måde at indsætte på er rigtig for de fleste Python 2. enhver version, men hvis du har 2.6 eller bedre,

sql = 'INSERT INTO testdata VALUES({0})'.format(holders)

er i øjeblikket foretrukket (det virker også i Python 3.any).

Endelig,

csr.executemany(sql, Newdata)

vil gøre hvad du ønsker. Husk at foretage transaktionen, når du er færdig!-)



  1. Leverer hurtigere innovation til MariaDBs fællesskab

  2. Importerer stor CSV til mysql database

  3. Vær opmærksom på skøn

  4. Opdatering af Woocommerce-ordrer programmatisk