python sqlite3选择,将numpy数组转换为list时没有结果

时间:2016-08-17 01:14:03

标签: python arrays list numpy sqlite

我正在尝试使用python 3和sqlite3对sqlite数据库执行SELECT查询。 当我在WHERE .. IN (list of values)语句中使用值列表时,它可以工作,但如果我使用转换为列表的numpy数组,则不返回任何内容。

这是一个最小的工作示例:

import numpy as np
import sqlite3

conn = sqlite3.connect('test.sqlite')

c = conn.cursor()

# create test table
c.execute("CREATE TABLE test (col1 INTEGER)")

values = [(v,) for v in range(10000)]

c.executemany("INSERT INTO test (col1) VALUES (?)", values)

conn.commit()

使用列表执行SELECT查询:

c.execute("SELECT col1 FROM test WHERE col1 IN (?,?,?)", [0,17,42])
c.fetchall()

返回:[(0,), (17,), (42,)] - >确定

但是,

c.execute("SELECT col1 FROM test WHERE col1 IN (?,?,?)", list(np.array([0,17,42])))
c.fetchall()

返回[]

虽然

list(np.array([0,17,42])) == [0,17,42]

返回True

预期吗?

0 个答案:

没有答案