PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment convertir des objets numpy NaN en SQL null?

Le code que j'essayais précédemment échoue car il suppose que np.Nan est son propre type alors qu'il s'agit en fait d'un float. Le code suivant, courtoisie de Daniele Varrazzo sur la liste de diffusion psycopg2 , fait le travail correctement.

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)