你几乎在那里您需要将替换后的所选值转换为整数,就像这样
results = sorted(ranks, key=lambda x: int(x["rank"].replace(",", "")))
例如,
>>> ranks = [
... {'url': 'example.com', 'rank': '11,279'},
... {'url': 'facebook.com', 'rank': '2'},
... {'url': 'google.com', 'rank': '1'}
... ]
>>> from pprint import pprint
>>> pprint(sorted(ranks, key=lambda x: int(x["rank"].replace(",", ""))))
[{'rank': '1', 'url': 'google.com'},
{'rank': '2', 'url': 'facebook.com'},
{'rank': '11,279', 'url': 'example.com'}]
注意:我刚使用pprint函数来打印结果.
这里,x将是要确定键值的当前对象.我们从它获得rank属性的值,替换为空字符串,然后将其转换为带int的数字.
>>> import locale
>>> pprint(sorted(ranks, key=lambda x: int(locale.atoi(x["rank"]))))
[{'rank': '1', 'url': 'google.com'},
{'rank': '2', 'url': 'facebook.com'},
{'rank': '11,279', 'url': 'example.com'}]