2013-10-24 78 views
0

我提前道歉,但我無法弄清楚....python sqlite => reportlab數據[1,2,3]和[[1],[2],[3]之間有什麼區別]

我正在嘗試從sqlite數據庫讀取數據並將數據填充到reportlab條形圖。我有樣本數據是從http://www.reportlab.com/snippets/3/

一個片段的sqlite3的代碼是:

def arrData(): 
    conn = sqlite3.connect('alarmdb.sqlite') 
    ccursor = conn.cursor() 
    strSQL = "Select distinct ErrorMsg, count(*) as Amt from tmpTable where cast(source as int)<20 group by ErrorMsg Order by count(*) desc limit 10" 
    ccursor.execute(strSQL) 
    arrResult = ccursor.fetchall() 
    arrErrAmt = [int(element[1]) for element in arrResult] 
    return arrErrAmt 

但返回[200,100,50,40,..],但ReportLab的樣品中它們顯示出: self.bar.data = [[4.22],[4.12],[3.65],[3.56],...]

我該如何使用我的arrData函數?

+0

糟糕我知道這是愚蠢的,我只在線路增加了一個托架下面 arrErrAmt = [INT(元件[1]),用於arrResult元件] 使其 arrErrAmt = [[INT(元件[1] )] for element in arrResult] 對不起 – user2565278

回答

0

列表[[4.22], [4.12], [3.65], [3.56], ...]的每個元素本身都是一個列表(包含一個浮點數)。

列表[200, 100, 50, 40,..]的每個元素都是int。所以你需要創建大量的列表,而不僅僅是很多整數。

你可以更改您的代碼:

[[int(element[1])] for element in arrResult] 

或者是:

[[float(element[1])] for element in arrResult] 

,如果你希望它看起來更像示例數據。

相關問題