conn = sqlite3.connect('Path_To_DB.db')
c = conn.cursor()
c.execute('SELECT Nick,NumCount,TimesRun FROM databaseTable ORDER BY NumCount desc')
ordered = c.fetchall()
print ordered
当然,这只是一个片段,但打印出来的“有序”并没有出现......好吧,有序。
更准确地说,这是我的输出
[(u'Coburn', u'52', 1), (u'radii', u'295', 1), (u'Senna_Wong', u'242', 1), (u'sinkingwork', u'17', 1), (u'Yumirose', u'164', 1), (u'yepperoni', u'154', 1), (u'Jeffrey-sama', 861, 2), (u'Kethsar', 414, 5), (u'sakeisgood', 331, 2), (u'lygerzero0zero', 269, 2), (u'asdfjjjjjj', 268, 5), (u'lunr', 253, 3), (u'asdfasf', 237, 2), (u'asdfsadjf', 130, 2), (u'Neibs', 107, 2)]
这是一个XChat IRC插件脚本,所以我需要提取数据库值以显示“最高分”列表。我一直在考虑手动排序它,但这需要花费很多额外的努力,因为我是python脚本的新手,还有很多时间和研究。 (我正在考虑单独抓取SELECT查询,将它们组合在一个大的列表[a,b,c]中并通过它进行排序。)
所以无论如何,问题是:我做错了什么,所以计数没有正确排序?
答案 0 :(得分:3)
其中一半是字符串,排序不同。擦洗数据,将字符串转换为数字。
答案 1 :(得分:1)
问题是你有不同类型的数据。看看他的NumCount字段,看到一些但不是其他人的引号?我想如果你把所有字符串都改成数字,你就可以解决问题了。