0
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]に結合し、それを介してソートすることを考えていました。)

とにかく、質問は次のとおりです。カウントが正しくソートされていないので、一体何が間違っているのでしょうか?

4

2 に答える 2

3

それらの半分は文字列で、並べ替えが異なります。データをスクラブして、文字列を数値に変換します。

于 2012-05-24T04:47:05.113 に答える
1

問題は、さまざまな種類のデータがあることです。NumCount フィールドを見てください。引用符で囲まれているものとそうでないものがありますか? すべての文字列を数字に変更すれば問題は解決すると思います。

于 2012-05-24T04:49:10.320 に答える