在python 3中将numpy整数对象的值插入数据库的正确方法是什么?在 python 2.7 中,numpy 数字数据类型干净地插入到 sqlite 中,但它们在 python 3 中没有
import numpy as np
import sqlite3
conn = sqlite3.connect(":memory:")
conn.execute("CREATE TABLE foo (id INTEGER NOT NULL, primary key (id))")
conn.execute("insert into foo values(?)", (np.int64(100),)) # <-- Fails in 3
np.float 类型在 2 和 3 中似乎仍然可以正常工作。
conn.execute("insert into foo values(?)", (np.float64(101),))
在 python 2 中,numpy 标量整数数据类型不再是 int 的实例,甚至将整数值浮点数转换为 int。
isinstance(np.int64(1), int) # <- true for 2, false for python 3
这就是 dbapi 不再与 numpy 无缝协作的原因吗?