Kod, który próbowałem wcześniej, kończy się niepowodzeniem, ponieważ zakłada, że np. Nan jest swoim własnym typem, gdy w rzeczywistości jest pływakiem. Poniższy kod, dzięki uprzejmości Daniela lista dyskusyjna psycopg2 , wykonuje pracę poprawnie.
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)