不同的数据类型

时间:2012-06-20 12:51:20

标签: python sql sqlite

我尝试将不同的数据类型添加到数组中:

mtype = np.dtype({'names':['a', 's', 'x', 'y'], 
                  'formats':['f8', 'S10', 'f8',   'f8']})

mtype = np.dtype([("a", np.float), ("s", np.str), 
                  ("x", np.float), ("y", np.float)])

数组:

a[i] = np.empty([4, d[i]], dtype= mtype)

从SQL查询中读取数组a的数据,循环中有4个不同的数组a

a[0], a[1], a[2], a[3]

并且对于每个不同的SQL查询都有不同的。

数据库中的数据由sqlite3包读取:

cur.execute(('''CREATE TABLE example
     (a real, s text , t real, x real, y real)''')

for j in range(len(rows)):
     a[i][0, j] = rows[j][0]
     a[i][1, j] = rows[j][1]
     a[i][2, j] = rows[j][2]
     a[i][3, j] = rows[j][3]

然后我收到错误:

File "C:\(..)", line 39,
in diff_spec
     a[i][0, j] = rows[j][0]
TypeError: expected a readable buffer object

如果我只将数组a设为:

a[i] = np.empty([4, d[i]], float)

我不读第二列(字符串),我不会收到错误。

for j in range(len(rows)):
    a[i][0, j] = rows[j][0]
    # a[i][1, j] = rows[j][1]
    a[i][2, j] = rows[j][2]
    a[i][3, j] = rows[j][3]

有人可以解释为什么会这样吗?提前谢谢!

0 个答案:

没有答案