python - 将python字典值转换为相应的键值对

Pri*_*nty 1 python dictionary

目前我正在使用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)

我在整个过程中遇到了一些麻烦.任何帮助,将不胜感激.谢谢.

Wil*_*sem 8

只需使用字典理解:

{ 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元组的可迭代,它将构造一个字典,其中每个元组的第一个元素是键,元组的第二个元素是相关值.

  • OP提到查询集,所以它们可能在以下之后:`dict(queryset.values_list('week','avg'))`... (3认同)