Mã mà tôi đã thử trước đây không thành công vì nó giả định rằng np.Nan là kiểu riêng của nó khi nó thực sự là một float. Đoạn mã sau, sự cho phép của Daniele Varrazzo danh sách gửi thư psycopg2 , thực hiện công việc một cách chính xác.
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)