当我从SQLite中恢复它时,我的数据发生了什么?

时间:2015-04-16 18:39:50

标签: python

不幸的是我在SQLite中将一些速度数据保存为TEXT。我希望为每个用户ID选择最大速度,这对我来说很难。当我在检索之后尝试在列表上输出max(速度)时,我得到一个在我的数据库中不存在的值。

所以,这是我检索数据的方式:

def getMaxSpeed(databasepath, id):
    con = lite.connect(databasepath)
    speeds = []
    with con:
        cur = con.execute("SELECT speed FROM table where userid = {userid}".format(userid=id))
    speed = [x[0] for x in cur]
    for i in range(0,len(speed)):
        speeds.append(float(speed[i]))
    return speeds

for循环之前的样本(裁剪)输出:

[u'0.00', u'0.20', u'0.20', u'0.20', u'0.10', u'0.20', u'0.10', u'0.10', u'0.20', u'13.60', u'12.30', u'12.20', u'12.30', u'12.20', u'13.00', u'13.00', u'13.00', u'13.00', u'13.60', u'13.60', u'13.70', u'14.00', u'13.10', u'6.90', u'7.50', u'7.60', u'7.70', u'6.00', u'5.90', u'8.10', u'8.10', u'8.10', u'8.30', u'8.20', u'4.60', u'1.70', u'1.70', u'3.10', u'3.90', u'3.60', u'3.50', u'3.50', u'3.30', u'3.30', u'3.30', u'2.00', u'2.00', u'2.10', u'2.10', u'3.70', u'3.60', u'3.50', u'3.50', u'3.30', u'6.00', u'4.20', u'4.20', u'4.30', u'4.20', u'4.30', u'4.30', u'4.20', u'4.20', u'4.70', u'4.80', u'5.00', u'6.40', u'6.40', u'5.10', u'5.10', u'2.20', u'2.20', u'2.20', u'2.20', u'0.00', u'0.10', u'0.10', u'0.30', u'0.10', u'0.10', u'0.10', u'0.20', u'0.00', u'13.20', u'10.50', u'10.50']

for循环后的样本(裁剪)输出:

[0.0, 0.2, 0.2, 0.2, 0.1, 0.2, 0.1, 0.1, 0.2, 13.6, 12.3, 12.2, 12.3, 12.2, 13.0, 13.0, 13.0, 13.0, 13.6, 13.6, 13.7, 14.0, 13.1, 6.9, 7.5, 7.6, 7.7, 6.0, 5.9, 8.1, 8.1, 8.1, 8.3, 8.2, 4.6, 1.7, 1.7, 3.1, 3.9, 3.6, 3.5, 3.5, 3.3, 3.3, 3.3, 2.0, 2.0, 2.1, 2.1, 3.7, 3.6, 3.5, 3.5, 3.3, 6.0, 4.2, 4.2, 4.3, 4.2, 4.3, 4.3, 4.2, 4.2, 4.7, 4.8, 5.0, 6.4, 6.4, 5.1, 5.1, 2.2, 2.2, 2.2, 2.2, 0.0, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.2, 0.0, 13.2, 10.5, 10.5]

主要方法:

speed = []
for id in userid:
    speed = getMaxSpeed(dbpath, id)
    for x in speed:
        if x > 40:
           print x
           print id
           break

最后一个for循环只是检查错误数据。它输出许多不同的ID,其中每个速度等于102.3。我希望我的速度在0到30之间。

示例输出:

102.3
209407000

因此,要检查这是回到我的数据库并执行:

SELECT distinct speed from table WHERE userid = 209407000

它输出了很多速度http://pastebin.com/bEe5tPkZ,102.3附近没有人。所以,我的检索方法正在发生一些事情 - 但是什么呢?我有一天,一切都出错了。

0 个答案:

没有答案