我的数据结构如下:
Clients= {
"data": [
{
"nClients": 3
},
{
"name": "cTest1",
"roll_no": 1,
"branch": "c"
},
{
"name": "fTest3",
"roll_no": 3,
"branch": "it3"
},
{
"name": "aTest2",
"roll_no": 2,
"branch": "it2"
}
]
}
我试图按键“名称”按字母顺序对其进行排序,以获得如下结果:
Clients= {
"data": [
{
"nClients": 3
},
{
"name": "aTest2",
"roll_no": 2,
"branch": "it2"
},
{
"name": "cTest1",
"roll_no": 1,
"branch": "c"
},
{
"name": "fTest3",
"roll_no": 3,
"branch": "it3"
}
]
}
我一直在使用函数 sort()、dump() ecc 四处寻找,但找不到此操作的正确语法。有什么建议吗? 谢谢!
你要排序的是一个
list
,它是dict
键下'data'
内的一个值。
sorted
,指定回调作为键:
Clients["data"] = sorted(Clients["data"], key=lambda x: x.get("name", ""))
或者
list
方法 sort
,它可以正常工作:
Clients["data"].sort(key=lambda x: x.get("name", ""))
两者都会导致:
{
"data": [
{"nClients": 3},
{"name": "aTest2", "roll_no": 2, "branch": "it2"},
{"name": "cTest1", "roll_no": 1, "branch": "c"},
{"name": "fTest3", "roll_no": 3, "branch": "it3"},
]
}