From: | Daniele Varrazzo <daniele(dot)varrazzo(at)gmail(dot)com> |
---|---|
To: | Ian <youknowho2000(at)yahoo(dot)com> |
Cc: | "psycopg(at)postgresql(dot)org" <psycopg(at)postgresql(dot)org> |
Subject: | Re: Reading binary data from Postgres 9 |
Date: | 2011-08-19 10:40:53 |
Message-ID: | CA+mi_8aic757K4RJ7qwBJ3X+kHGFYiOPdW4h0f23bYF-JbCQCg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | psycopg |
On Fri, Aug 19, 2011 at 1:28 AM, Ian <youknowho2000(at)yahoo(dot)com> wrote:
> Hi list,
> I am storing a NumPy array in binary form in Postgres with:
> import numpy as np
> ...
> my_array = np.array(data_list, np.float32)
> cur.execute("insert into my_table values (%s)",
> (psycopg2.Binary(my_array),))
Are you sure? I get an error with this (can't escape numpy.ndarray to
binary). Looks like it would be required to use
psycopg2.Binary(my_array.tostring()). Is it a typo from you or a
regression? (I'm using 2.4.x).
> I've confirmed that this works fine. However when I query this binary data
> from the database I am having trouble deserializing/getting it back into a
> NumPy array. The result comes back as a read-only buffer. Does psycopg2 have
> an opposite of Binary to handle this?
you can use numpy.frombuffer(b, np.float32) to have your data back,
where b is the buffer read from the cursor.
Cheers,
-- Daniele
From | Date | Subject | |
---|---|---|---|
Next Message | Ian | 2011-08-19 16:35:33 | Re: Reading binary data from Postgres 9 |
Previous Message | Ian | 2011-08-19 00:28:28 | Reading binary data from Postgres 9 |