我想按照uid排序
rsp=[
{'user': {'uid': 1, 'name': 'Bob'}},
{'user': {'uid': 5, 'name': 'Sid'}},
{'user': {'uid': 2, 'name': 'Cas'}},
]
Run Code Online (Sandbox Code Playgroud)
至
rsp=[
{'user': {'uid': 1, 'name': 'Bob'}},
{'user': {'uid': 2, 'name': 'Cas'}},
{'user': {'uid': 5, 'name': 'Sid'}},
]
Run Code Online (Sandbox Code Playgroud)
我试过这种方式.....但它不起作用
result = sorted(rsp, key=itemgetter('user').itemgetter('uid'))
Run Code Online (Sandbox Code Playgroud)
您可以将lambda函数传递给key参数:
result = sorted(rsp, key=lambda x: x.get('user', {}).get('uid', -1) )
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我使用get以确保排序不会失败,如果其中一个元素没有user键,并且任何没有键的子词典uid将首先放置.