对于列表中嵌套的字典的值进行排序(使用sorted和lambda)
![](https://img.haomeiwen.com/i13066686/ee1df606dc6a66a8.png)
dp_sns = []
for passage in passage_queryset:
print(passage.di_id.di_device_location.lab_name)
if passage.di_id.di_tempperature and project_obj.device_range:
if str(int(passage.di_id.di_tempperature)) =project_obj.bt_project_id.item_name[:2] and passage.di_id.di_range.id == int(project_obj.device_range) and passage.dp_status == 0:
passage_dict = {}
passage_dict["dp_sn"] = passage.dp_sn # 符合条件的通道sn
passage_dict["id"] = passage.id # 通道id
passage_dict["lab_name"] = passage.di_id.di_device_location.lab_name
dp_sns.append(passage_dict)
sorted_dp_sns = sorted(dp_sns, key=lambda dp: dp['dp_sn'])
对于查询集亦可,由此可见sorted函数实现了遍历,可以直接使用遍历的对象.外键取值,此处是将要排序的值重新组合成键值对的键,按值重新自定义排序
![](https://img.haomeiwen.com/i13066686/0a7293ac63e07be2.png)
order_map = {'C9': 1, 'E12': 2, 'B6': 3}
passage_queryset1 = DevicePassage.objects.all()
passage_queryset = sorted(passage_queryset1,
key= lambda x:order_map[x.di_id.di_device_location.lab_name])
[用sorted和lambda匿名函数实现多字段排序](https://blog.csdn.net/weihongrao/article/details/16877595 )
网友评论