以下是一个示例代码,用于按子对象数组的最大日期对对象数组进行排序:
from datetime import datetime
# 定义对象数组
data = [
{
"id": 1,
"dates": [
{"date": "2021-01-01"},
{"date": "2021-02-15"},
{"date": "2021-03-10"}
]
},
{
"id": 2,
"dates": [
{"date": "2021-04-20"},
{"date": "2021-05-05"},
{"date": "2021-06-30"}
]
},
{
"id": 3,
"dates": [
{"date": "2021-07-15"},
{"date": "2021-08-20"},
{"date": "2021-09-10"}
]
}
]
# 定义排序函数
def sort_by_max_date(obj):
max_date = max([datetime.strptime(date["date"], "%Y-%m-%d") for date in obj["dates"]])
return max_date
# 对对象数组进行排序
sorted_data = sorted(data, key=sort_by_max_date, reverse=True)
# 打印排序结果
for obj in sorted_data:
print(obj)
运行以上代码会输出以下结果:
{'id': 3, 'dates': [{'date': '2021-07-15'}, {'date': '2021-08-20'}, {'date': '2021-09-10'}]}
{'id': 2, 'dates': [{'date': '2021-04-20'}, {'date': '2021-05-05'}, {'date': '2021-06-30'}]}
{'id': 1, 'dates': [{'date': '2021-01-01'}, {'date': '2021-02-15'}, {'date': '2021-03-10'}]}
根据示例代码,我们定义了一个排序函数sort_by_max_date
,该函数接受一个对象作为参数,并计算该对象的子对象数组中的最大日期。然后,我们使用sorted
函数对对象数组进行排序,通过key
参数指定排序函数,并通过reverse=True
参数使排序结果为降序。最后,我们打印排序结果。