要按日期在数组中进行JMESPath过滤,可以使用以下解决方案。
首先,您需要使用JMESPath查询语法来编写过滤条件。JMESPath支持日期和时间的比较操作,因此您可以根据需要使用这些操作符来过滤日期。
以下是一个示例代码,演示如何使用JMESPath过滤数组中的日期:
import jmespath
from datetime import datetime
# 示例数组
data = [
{
"name": "John",
"birthdate": "1985-10-15"
},
{
"name": "Mary",
"birthdate": "1990-05-20"
},
{
"name": "David",
"birthdate": "1978-12-01"
}
]
# 按日期过滤条件
filter_expr = "[?birthdate > '1980-01-01']"
# 使用JMESPath进行过滤
result = jmespath.search(filter_expr, data)
# 输出结果
print(result)
在上面的示例中,我们首先导入jmespath
库和datetime
模块。然后,我们定义了一个示例数组data
,其中包含包含名称和出生日期的字典。接下来,我们定义了一个JMESPath过滤条件filter_expr
,该条件将选择出生日期在1980年之后的所有条目。最后,我们使用jmespath.search()
函数来应用过滤条件并将结果存储在result
变量中。最后,我们打印出结果。
运行上述代码将输出以下结果:
[{'name': 'John', 'birthdate': '1985-10-15'}, {'name': 'Mary', 'birthdate': '1990-05-20'}]
根据过滤条件,只有出生日期在1980年之后的两个条目被选择出来。
请根据您的具体需求调整过滤条件和输入数据。您可以使用比较操作符(如>
, <
, >=
, <=
)来根据需要过滤日期。
上一篇:按日期在时间轴上分组
下一篇:按日期找到最后发生的数值