2017-08-02 39 views
1

目前我使用Django的查詢集工作,我得到的結果是這樣的:蟒蛇 - 轉換Python字典值相應的鍵值對

[{'week': 29, 'avg': 137.6}, {'week': 30, 'avg': 138.6}, {'week': 31, 'avg': 138.06666666666666}] 

正如你所看到的,它是一個字典的列表。

我要處理的只是:

{29: 137.6, 30: 138.6, 31: 138.066} 
我有一些麻煩,通過這個循環的所有我的頭

。任何幫助,將不勝感激。 謝謝。

回答

8

只需使用字典解析

{ d['week'] : d['avg'] for d in data } 

哪裏data是您的字典清單。這產生:

>>> { d['week'] : d['avg'] for d in data } 
{29: 137.6, 30: 138.6, 31: 138.06666666666666} 

字典理解將通過data因此迭代,以及對於每個元素d(辭典),它會與d['avg']在結果(值)相關聯d['week'](鍵)。

如果它不是一個字典列表,但仍然是一個查詢集,你應該 - 像@JonClemens says - 使用下面的表達式:

dict(queryset.values_list('week','avg')) 

這裏values_list('week','avg')將構建的包含2元組的迭代一週作爲第一個元素,平均作爲第二個元素。如果dict(..)構造函數獲得2元組的迭代,它將構造一個字典,其中每個元組的第一個元素是關鍵字,而元組的第二個元素是關聯的值。

+3

OP提到querysets,所以他們可能在:'字典(queryset.values_list('week','avg'))'... –

+1

@JonClements:謝謝。我在簡短的解釋中加入了這個答案:)。 –

+0

這太棒了,非常簡單!非常感謝你。 –