You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从无序JSON中按日期查询获取最新条目

从JSON数组中提取日期最新条目的方法

你只需要将JSON字符串解析为对应语言的数组/列表结构,通过一次遍历对比date字段的时间大小即可得到结果,核心逻辑是把日期字符串转换为可比较的时间类型,再取最大值对应的条目即可。

示例JSON结构

注意你给出的示例为类JSON格式,标准JSON需要使用双引号包裹字符串,解析时如果是JSON字符串需要先做格式校验:

[
  {
    "bytes": 2853922,
    "date": "2021-11-08 12:03",
    "name": "dummy1.mp4",
    "size": "2.7MB",
    "url": "/downloads/timelapse/dummy1.mp4"
  },
  {
    "bytes": 1402663,
    "date": "2021-11-18 11:57",
    "name": "dummy2.mp4",
    "size": "1.3MB",
    "url": "/downloads/timelapse/dummy2.mp4"
  },
  {
    "bytes": 1318887,
    "date": "2021-11-11 11:28",
    "name": "dummy3.mp4",
    "size": "1.3MB",
    "url": "/downloads/timelapse/dummy3.mp4"
  }
]

常用语言实现

Python实现

直接使用内置的max函数指定对比的key即可,时间复杂度为O(n),仅需遍历一次数组:

from datetime import datetime

# 此处为解析后的JSON数组
data = [
  # 上述示例数组内容
]

latest_entry = max(data, key=lambda item: datetime.strptime(item["date"], "%Y-%m-%d %H:%M"))
print(latest_entry)

JavaScript实现

使用reduce方法遍历数组对比时间戳即可:

// 此处为解析后的JSON数组
const data = [
  // 上述示例数组内容
]

const latestEntry = data.reduce((prev, current) => {
  return new Date(current.date) > new Date(prev.date) ? current : prev
})
console.log(latestEntry)

注意:如果你的日期格式和示例不同,需要对应调整时间解析的规则,避免出现解析错误。如果数组为空需要先做异常判断,避免运行报错。

内容的提问来源于stack exchange,提问作者Felix Dango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:54:08