[Python] python 3,3 e sqlite
Daniele Varrazzo
piro a develer.com
Mar 25 Mar 2014 16:23:38 CET
On 2014-03-25 15:13, Filippo Dal Bosco - wrote:
> il campo symbol è text
>
> Perchè questo funziona
>
> c.execute('insert into portfolio (symbol) values (?)', ('x'))
>
> e questo NON funziona ( dice gli passo troppi valori)
> c.execute('insert into portfolio (symbol) values (?)', ('xx'))
Probabilmente perchè il modulo sqlite si aspetta una sequenza come
parametri. ('xx') non è una tupla, ma una stringa tra parentesi, che è
una espressione uguale ad una stringa e basta. Una stringa *È* una
sequenza: la tua è di due elementi (due caratteri). Quindi gli sembra
che gli stai passando due parametri mentre la query ha solo un
segnaposto. bum.
Puoi usare ('xx',) che è il modo di creare una tupla di un solo
elemento, oppure ['xx'] che è una lista di un solo elemento.
Sei in buona compagnia: è l'errore più frequente commesso usando
database da Python.
-- Daniele
Maggiori informazioni sulla lista
Python