PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso convertire numpy oggetti NaN in SQL null?

Il codice che stavo provando in precedenza non riesce perché presuppone che np.Nan sia il suo tipo quando in realtà è un float. Il seguente codice, per gentile concessione di Daniele Varrazzo su la mailing list di psycopg2 , esegue correttamente il lavoro.

def nan_to_null(f,
        _NULL=psycopg2.extensions.AsIs('NULL'),
        _Float=psycopg2.extensions.Float):
    if not np.isnan(f):
        return _Float(f)
    return _NULL

 psycopg2.extensions.register_adapter(float, nan_to_null)