How do I convert numpy NaN objects to SQL nulls?

From: Gregory Arenius <gregory(at)arenius(dot)com>
To: psycopg(at)postgresql(dot)org
Subject: How do I convert numpy NaN objects to SQL nulls?
Date: 2015-08-20 19:34:10
Message-ID: CAMPu647QNGY+HpJVEBGKEzk4h37uDDW0ovWaZuiHC1oqvAkvJA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: psycopg

have a Pandas dataframe that I'm inserting into an SQL database. I'm using
Psycopg2 directly to talk to the database, not SQLAlchemy, so I can't use
Pandas built in to_sql functions. Almost everything works as expected
except for the fact that numpy np.NaN values get converted to text as NaN
and inserted into the database. They really should be treated as SQL null
values.

So, I'm trying to make a custom adapter to convert np.NaN to SQL null but
everything I've tried results in the same NaN strings being inserted in the
database.

The code I'm currently trying is:

def adapt_nans(null):
a = adapt(None).getquoted()
return AsIs(a)

register_adapter(np.NaN, adapt_nans)

I've tried a number of variations along this theme but haven't had any luck.

Cheers,

Greg

Responses

Browse psycopg by date

  From Date Subject
Next Message Adrian Klaver 2015-08-20 23:32:42 Re: How do I convert numpy NaN objects to SQL nulls?
Previous Message Jonathan Rogers 2015-07-31 18:53:21 Re: ISQLQuote vs. str subclass