Python MySQLdb查询到Numpy数组

Python MySQLdb查询到Numpy数组,python,mysql,arrays,numpy,Python,Mysql,Arrays,Numpy,所以我试着跟随,但仍然有问题 我的数据库行是57个无符号整数(Unix历元加上28个交换机端口中每个端口的字节计数,输入和输出) 我的代码如下所示: import MySQLdb as mdb import numpy # get the database connector DBconn = mdb.connect('localhost', 'root', '<Password>', 'Monitoring') with DBconn: # prepare a cur

所以我试着跟随,但仍然有问题

我的数据库行是57个无符号整数(Unix历元加上28个交换机端口中每个端口的字节计数,输入和输出)

我的代码如下所示:

import MySQLdb as mdb
import numpy

# get the database connector
DBconn = mdb.connect('localhost', 'root', '<Password>', 'Monitoring')

with DBconn:

    # prepare a cursor object using cursor() method
    cursor = DBconn.cursor()

    # now get the data for the last 10 minutes
    sql = "select * from LowerSwitchBytes where ComputerTime >= (unix_timestamp(now())-(60*10))"
    cursor.execute(sql)

    results = cursor.fetchall()
    for row in results:
        print row
但是,当我改变规则时:

    results = cursor.fetchall()
    for row in results:
        print row

我得到:

Traceback (most recent call last):
  File "min.py", line 23, in <module>
    A = numpy.fromiter(cursor.fetchall(), count=-1, dtype=numpy.uint32)
ValueError: setting an array element with a sequence.
回溯(最近一次呼叫最后一次):
文件“min.py”,第23行,在
A=numpy.fromiter(cursor.fetchall(),count=-1,dtype=numpy.uint32)
ValueError:使用序列设置数组元素。

知道我做错了什么吗?

np.fromiter
正在抱怨,因为它试图将整行输入写入新数组的单个项中。您可以使用记录数组解决此问题:

A = numpy.fromiter(cursor.fetchall(), count=-1,
                   dtype=[('', numpy.uint8)]*57)
如果所有记录的类型相同,则可以获得如下数组视图:

A = A.view(numpy.uint8).reshape(-1, 57)

这基本上是可行的,但因为它们是大整数,所以在两行上都是numpy.uint32而不是numpy.uint8。非常感谢!
A = numpy.fromiter(cursor.fetchall(), count=-1,
                   dtype=[('', numpy.uint8)]*57)
A = A.view(numpy.uint8).reshape(-1, 57)