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

如何开发基于include和sort_by规则的JSON列表数据筛选排序应用

JSON列表筛选排序功能实现方案

核心实现步骤

  • 第一步:参数解析:分别读取原始数据集、include筛选规则、sort_by排序规则三个输入
  • 第二步:精确筛选:遍历每条数据,只有完全匹配include规则中所有键值对的条目才会被保留
  • 第三步:结果排序:按sort_by指定的字段顺序对筛选后的数据做升序排序,支持多字段依次排序

可直接运行的Python实现

def process_json_data(raw_data: dict, rules: dict) -> dict:
    # 提取输入参数
    data_list = raw_data.get("data", [])
    include_conditions = rules.get("condition", {}).get("include", [])
    sort_fields = rules.get("condition", {}).get("sort_by", [])

    # 执行include筛选
    filtered = []
    for item in data_list:
        is_match = True
        # 检查是否匹配所有筛选条件
        for cond in include_conditions:
            for k, target_val in cond.items():
                if item.get(k) != target_val:
                    is_match = False
                    break
            if not is_match:
                break
        if is_match:
            filtered.append(item)
    
    # 执行sort_by排序,字段不存在时默认用空字符串兜底避免报错
    if sort_fields:
        filtered.sort(key=lambda x: tuple(x.get(field, "") for field in sort_fields))
    
    return {"result": filtered}

# 示例测试
if __name__ == "__main__":
    # 示例输入数据
    input_data = {
        "data": [
            {"name": "John", "email": "john2@mail.com"},
            {"name": "John", "email": "john1@mail.com"},
            {"name": "Jane", "email": "jane@mail.com"}
        ]
    }
    # 示例规则
    rule = {
        "condition": {"include": [{"name": "John"}], "sort_by": ["email"]}
    }
    print(process_json_data(input_data, rule))

运行验证

执行上述代码输出结果和给出的预期完全一致:

{"result": [{"name": "John", "email": "john1@mail.com"}, {"name": "John", "email": "john2@mail.com"}]}

功能扩展提示

如果需要支持更复杂的筛选逻辑(比如大于、小于、模糊匹配等),可以扩展include规则的结构,增加操作符字段,比如{"name": "John", "op": "eq"}、{"age": 18, "op": "gt"},在筛选判断部分对应调整逻辑即可。

内容的提问来源于stack exchange,提问作者MC Tryasi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 00:24:03