Сортировка массива внутри dict на основе datetime

#python #arrays #json #python-3.x

#python #массивы #json #python-3.x

Вопрос:

Я хотел бы отсортировать свой versions массив на основе modified_datetime ключа. Я определенно могу использовать для этого один из алгоритмов сортировки, но мне просто интересно, есть ли эффективный способ сделать это на Python.

 my_json = {
  "versions": [
    {
      "migrated_versions": [ 
        {
          "modified_datetime": "2020-09-11T21:15:22.215Z"
        }
      ],
    },
    {
      "migrated_versions": [ 
        {
          "modified_datetime": "2020-09-11T21:14:19.162Z"
        }
      ]
    },
    {
      "migrated_versions": [ 
        {
          "modified_datetime": "2020-09-11T21:10:19.289Z"
        }
      ]
    }
  ]
}
  

Ответ №1:

Поскольку datetimes — это ISO8601, который можно сортировать лексикографически, вы можете просто использовать sorted() встроенный (или list.sort() ) с key= аргументом:

 sorted(my_json["versions"], key=lambda v: v["migrated_versions"][0]["modified_datetime"])