sql >> Databáze >  >> RDS >> Mysql

Pomocí Pythonu rychle vložte mnoho sloupců do Sqlite\Mysql

Pod pojmem "Newdata je seznam x sloupců" máte na mysli x n-tice , od té doby stále mluvíte o „první n-tice“. Pokud Newdata je seznam n-tic, y = len(Newdata[0]) je počet položek v první z těchto n-tic.

Za předpokladu, že to je požadovaný počet (a všechny n-tice by měly mít stejný počet položek, jinak executemany bude selhat!), obecná myšlenka v odpovědi @Nathana je správná:vytvořte řetězec s příslušným počtem otazníků oddělených čárkou:

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

poté jej vložte do zbytku příkazu SQL. @Nathanův způsob vkládání je správný pro většinu verzí Pythonu 2.any, ale pokud máte 2.6 nebo lepší,

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

je aktuálně preferováno (funguje také v Pythonu 3.any).

Konečně,

csr.executemany(sql, Newdata)

udělá, co si přeješ. Jakmile budete hotovi, nezapomeňte transakci potvrdit!-)



  1. MySQL - SELECT * DO OUTFILE LOCAL ?

  2. JSON_QUOTE() – Jak uniknout ze znaků v řetězcích používaných jako hodnoty JSON v MySQL

  3. Proč si Oracle 10g nestěžuje na nejednoznačnost sloupců?

  4. mySQL dotaz na opakující se události