目前我正在使用Django查询集,我得到的结果如下:
[{'week': 29, 'avg': 137.6}, {'week': 30, 'avg': 138.6}, {'week': 31, 'avg': 138.06666666666666}]
Run Code Online (Sandbox Code Playgroud)
如您所见,它是一个词典列表.
我想简单地处理:
{29: 137.6, 30: 138.6, 31: 138.066}
Run Code Online (Sandbox Code Playgroud)
我在整个过程中遇到了一些麻烦.任何帮助,将不胜感激.谢谢.
只需使用字典理解:
{ d['week'] : d['avg'] for d in data }
Run Code Online (Sandbox Code Playgroud)
data你的词典列表在哪里?这会产生:
>>> { d['week'] : d['avg'] for d in data }
{29: 137.6, 30: 138.6, 31: 138.06666666666666}
Run Code Online (Sandbox Code Playgroud)
因此字典理解将迭代data,并且对于每个元素d(字典),它将d['week'](d['avg']结果)与(值)相关联.
如果它不是字典列表,但仍然是一个查询集,你应该像@JonClemens所说的那样使用以下表达式:
dict(queryset.values_list('week','avg'))
Run Code Online (Sandbox Code Playgroud)
这里values_list('week','avg')将构造一个可迭代的2元组,其中包含作为第一个元素的周,以及作为第二个元素的平均值.如果dict(..)构造函数获得2元组的可迭代,它将构造一个字典,其中每个元组的第一个元素是键,元组的第二个元素是相关值.