鉴于以下字典,您如何对" namedir"进行排序?列出与嵌套" last"相关的值键?还要注意最后一个名字"条目没有" last"键或值,所以我需要避免错过键错误。 谢谢!
{
"namedir": [
{
"name": {
"first": "joe",
"last": "jones"
}
},
{
"name": {
"first": "bob",
"last": "doe"
}
},
{
"name": {
"first": "pete",
"last": "doe"
}
},
{
"name": {
"first": "jane"
}
}
]
}
答案 0 :(得分:1)
您可以使用自定义排序键轻松完成此操作。当没有姓氏时,你需要决定做什么的规则。我选择将缺少的姓氏视为空字符串,这意味着这些条目首先出现。
sorted(namedir, key=lambda x: x['name'].get('last', ''))
这会给你:
[{'name': {'first': 'jane'}},
{'name': {'first': 'bob', 'last': 'doe'}},
{'name': {'first': 'pete', 'last': 'doe'}},
{'name': {'first': 'joe', 'last': 'jones'}}]