用python中的列表对嵌套的dict进行排序

用python中的列表对嵌套的dict进行排序,python,list,sorting,dictionary,Python,List,Sorting,Dictionary,我有一个python dict,它类似于 flights = [ { "Flight_Fare": [ {"M": {"AvailableSets": "9+", "AdultBaseFare": "20"}}, {"N": {"AvailableSets": &qu

我有一个python dict,它类似于

flights = [
    {
        "Flight_Fare": [
            {"M": {"AvailableSets": "9+", "AdultBaseFare": "20"}},
            {"N": {"AvailableSets": "9+", "AdultBaseFare": "30"}},
        ]
    },
    {
        "Flight_Fare": [
            {"M": {"AvailableSets": "9+", "AdultBaseFare": "40"}},
            {"N": {"AvailableSets": "9+", "AdultBaseFare": "10"}},
        ]
    },
]

我想根据在其“成人基本票价”下的“航班票价”中具有最便宜价格的对象的值,对“航班”列表进行排序

所以你可以这样看

Flights”中的每个对象都是针对一个航班的,每个航班都有不同的等级(例如,一个用于经济舱,一个用于商务舱),每个等级都有不同的价格。我想对整个“航班”列表进行排序,以便“航班”列表中的第一个对象是价格最便宜的航班(如果该航班中的其他舱比下一个航班更贵,则无所谓)

我认为最好的方法是首先对每个航班的“航班票价”列表进行排序(这样每个航班都会根据价格对其类别进行排序),然后根据该航班“航班票价”中第一个对象的价格对“航班票价”列表进行排序


有人能帮我吗?

只需创建一个函数,获取每个航班最便宜的成人基本票价,并将其用作
排序功能的键

def get_cheapest(flight):
    fares = []
    for f in flight['Flight_Fare']:
        for key in f.keys():
            fares.append(f[key]['AdultBaseFare'])
    return float(min(fares))

flights = [
    {
        "Flight_Fare": [
            {"M": {"AvailableSets": "9+", "AdultBaseFare": "20"}},
            {"N": {"AvailableSets": "9+", "AdultBaseFare": "30"}},
        ]
    },
    {
        "Flight_Fare": [
            {"M": {"AvailableSets": "9+", "AdultBaseFare": "40"}},
            {"N": {"AvailableSets": "9+", "AdultBaseFare": "10"}},
        ]
    },
]

out = sorted(flights, key=lambda x: get_cheapest(x))

你能自己演示一下解决这个问题的方法吗?嵌套的dict表单是一个要求吗?我不知道你对这些数据还做了什么,但我想我会制作一个
航班票价
类,它拥有你需要的所有属性和神奇的方法
\uu lt\uu
\uu gt\uuu
(小于和大于)。这将允许对航班票价进行本机排序。此外,您可能会遇到一个可预测的问题,即您现在拥有的票价是字符串。您可能希望在某个时候将这些数据转换为数字数据类型您希望从数据中得到什么结果?