基于键对嵌套字典内部的字典重新排序

2024-05-23 15:12:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下词典目录:

test = [{'Date': datetime.datetime(2017, 12, 26, 0, 0),'Visitors': [{u'Owner_Name': u'Ashish Bainade', u'Unit_ID': u'1000', u'ID': u'Ashish ainade 119', u'In_Time': datetime.datetime(2017, 12, 26, 12, 13), u'Wing': u'Z'},{u'Owner_Name': u'Ashish Bainade', u'Unit_ID': u'102', u'ID': u'6976', u'In_Time': datetime.datetime(2017, 12, 26, 13, 15), u'Wing': u'B'}]}]

我想按键In_Time降序排列子字典Visitors,如下所示

test = [{'Date': datetime.datetime(2017, 12, 26, 0, 0),'Visitors': [{u'Owner_Name': u'Ashish Bainade', u'Unit_ID': u'102', u'ID': u'6976', u'In_Time': datetime.datetime(2017, 12, 26, 13, 15), u'Wing': u'B'},{u'Owner_Name': u'Ashish Bainade', u'Unit_ID': u'1000', u'ID': u'Ashish ainade 119', u'In_Time': datetime.datetime(2017, 12, 26, 12, 13), u'Wing': u'Z'}]}]

我试着用这种方法: from operator import itemgetter

但是我无法得到想要的结果,有什么方法或建议可以帮助我吗?你知道吗

感谢您的帮助。你知道吗


Tags: 方法nameintestiddatetimedatetime
1条回答
网友
1楼 · 发布于 2024-05-23 15:12:49

只需对子字典Visitors进行排序并将其赋值。你知道吗

test[0]['Visitors'] = sorted(test[0]['Visitors'], key = lambda x: x['In_Time'], reverse = True)

如果要使用itemgetter

from operator import itemgetter
test[0]['Visitors'] = sorted(test[0]['Visitors'], key=itemgetter('In_Time'), reverse=True) 

输入:

[{'Date': datetime.datetime(2017, 12, 26, 0, 0),
  'Visitors': [{u'ID': u'Ashish ainade 119',
    u'In_Time': datetime.datetime(2017, 12, 26, 12, 13),
    u'Owner_Name': u'Ashish Bainade',
    u'Unit_ID': u'1000',
    u'Wing': u'Z'},
   {u'ID': u'6976',
    u'In_Time': datetime.datetime(2017, 12, 26, 13, 15),
    u'Owner_Name': u'Ashish Bainade',
    u'Unit_ID': u'102',
    u'Wing': u'B'}]}]

输出:

[{'Date': datetime.datetime(2017, 12, 26, 0, 0),
  'Visitors': [{u'ID': u'6976',
    u'In_Time': datetime.datetime(2017, 12, 26, 13, 15),
    u'Owner_Name': u'Ashish Bainade',
    u'Unit_ID': u'102',
    u'Wing': u'B'},
   {u'ID': u'Ashish ainade 119',
    u'In_Time': datetime.datetime(2017, 12, 26, 12, 13),
    u'Owner_Name': u'Ashish Bainade',
    u'Unit_ID': u'1000',
    u'Wing': u'Z'}]}]

相关问题 更多 >