2011/2/15 Daniele Varrazzo <p...@develer.com> > On Tue, 15 Feb 2011 15:36:03 +0100, Stefano Dal Pra <s.dal...@gmail.com> > wrote: > > saluti, sto tentando di inserire un valore bytea in una tabella di un db > > postgres 8.4.7 > > usando psycopg2 2.2.1-1 (Python 2.6.6) e ottengo un errore. Se qualcuno > ha > > lumi mi puo' suggerire > > il suo parere? > > > > Descrivo il problema: > > > > # carico un'immagine > >>>> mypic=open('/home/sdp/testpic.png','r').read() > > > > # provo a inserirla con psycopg2 > >>>> q.curs.execute("insert into blobs (name,file) values (%s,%s)",('UN > nome > > a caso',mypic,)) > > Psycopg fa una conversione in base al tipo in Python. Le stringhe vengono > convertite come testo, non come binary. Credo che in Python 2.6 l'unico > tipo convertito in binario sia buffer. > > Ma probabilmente la soluzione più semplice è quella di usare > psycopg2.Binary(mypic). Prova:: > > q.curs.execute( > "insert into blobs (name,file) values (%s,%s)", > ('UN nome a caso', psycopg2.Binary(mypic),)) >
Provato, funziona: docetest=> select md5(file) from blobs; md5 ---------------------------------- 771f5d3c3b264842d584bd7dfc42b2ab (1 riga) >>> gu=hashlib.md5(mypic) >>> gu.hexdigest() '771f5d3c3b264842d584bd7dfc42b2ab' quindi nel db c'e' effettivamente lo stesso dato che ho inserito (meglio controllare: non si sa mail...) Grazie mille! Risposta e soluzione i 5 min! Stefano > > Noto _senza_ piacere che la soluzione più semplice non è documentata... > provvedo subito. > > Ciao! > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python