sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo convierto objetos NaN numpy en nulos de SQL?

El código que estaba probando anteriormente falla porque asume que np.Nan es su propio tipo cuando en realidad es un flotador. El siguiente código, cortesía de Daniele Varrazzo en la lista de correo psycopg2 , hace el trabajo correctamente.

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)