我有一本字典,看起来像这样
{
'Host-A': {'requests':
{'GET /index.php/dashboard HTTP/1.0': {'code': '200', 'hit_count': 3},
'GET /index.php/cronjob HTTP/1.0': {'code': '200', 'hit_count': 4},
'GET /index.php/setup HTTP/1.0': {'code': '200', 'hit_count': 2}},
'total_hit_count': 9},
}
您可以看到'Host-A'
的值是一个dict,其中包含收到的请求和每一页的点击数。.问题是如何按降序对'requests'
进行排序。这样我就可以获得最重要的请求。
正确的解决方案输出示例如下:
{
'Host-A': {'requests':
{'GET /index.php/cronjob HTTP/1.0': {'code': '200', 'hit_count': 4},
'GET /index.php/dashboard HTTP/1.0': {'code': '200', 'hit_count': 3},
'GET /index.php/setup HTTP/1.0': {'code': '200', 'hit_count': 2}},
'total_hit_count': 9},
}
感谢您的帮助
答案 0 :(得分:2)
假设您使用的是Python 3.7+,保留了字典键的顺序,并且将字典存储在变量d
中,则可以使用以下命令对d['Host-A']['requests']
子字典的项进行排序:一个键函数,该键函数返回给定元组第二个项目中子字典的hit_count
值,然后将结果的排序后的项目序列传递给dict
构造函数以构建新的排序后的dict:
d['Host-A']['requests'] = dict(sorted(d['Host-A']['requests'].items(), key=lambda t: t[1]['hit_count'], reverse=True))