2016-11-14 114 views
0

我連接到MySQL數據庫和提取兩列從MySQL的蟒蛇與排序值從MySQL中獲取蟒蛇

query = ('select test_id, a_id from b.atc_id_TO_cID ') 


    cursor.execute(query) 
    rows = cursor.fetchall() 



    CountinmyDi = {} 

    for row in rows: 

      if not row[0] in CountinmyDi.keys(): 
        CountinmyDi[row[0]] = 1 
      else : 
        CountinmyDi[row[0]] += 1 
    for key in CountinmyDi.keys(): 
        print str(key) + ":" ,CountinmyDi[key] 

並創建了一個字典CountinmyDi計數字典裏面的唯一項目。現在我有例如:

種皮:2 TESTB:82 TESTC:102測試d:3試驗E:1等..約220項

我想將字典內的項目進行排序例如根據它們的值增加到遞減順序,例如testC:102,testB:82,testD:3,test A:2,test E:1.我想知道我該怎麼做。謝謝你,如果你需要進一步的信息,我可以很樂意提供。

+0

這個問題與MySQL無關,所以請刪除標記。 – FDavidov

+1

爲什麼不直接寫正確的查詢,以免在Python中做任何事情? –

+0

好的確定。我做了:) fdavidov –

回答

1

我會問數據庫爲你做,SQL查詢應爲:

select test_id, count(*) as count from b.atc_id_TO_cID group by test_id order by count 

,它會返回一個2列的表與爲test_id,試驗次數與此爲test_id

如果你不能這樣做,我會用Python built-in Counter

from collections import Counter 

query = ('select test_id, a_id from b.atc_id_TO_cID ') 
cursor.execute(query) 

test_counter = Counter(row[0] for row in cursor.fetchall()) 

for test_id, count in test_counter.most_common(): 
    print(test_id, ":", count) 
+0

完美。非常感謝Guillaume。有用 –