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

如何在Python中筛选JSON数组,提取含非空source块的operation_no

用Python提取含非空source条目的数据

实现思路

遍历JSON数据中的L数组,筛选出source字段不为空的条目,再提取目标内容(比如operation_no)。

代码示例

import json

# 示例JSON字符串(实际场景中可从文件/接口获取)
json_content = '''
{
    "L": [
        {
            "operation_no": 123456,
            "key1": "value1",
            "keys": {
                "no_seq": "1234",
                "external_key": null
            },
            "key2": 10234,
            "territory": {
                "territory_no": 1
            },
            "key3": "value",
            "source": []
        },
        {
            "operation_no": 123458,
            "key1": "value3",
            "keys": {
                "no_seq": "1237",
                "external_key": null
            },
            "key2": 10237,
            "territory": {
                "territory_no": 1
            },
            "key3": "value",
            "source": [
                {
                    "source1": "fhry4645fsgaa1",
                    "source2": "123egst36535a1"
                },
                {
                    "source1": "fhry4645fsgaa2",
                    "source2": "123egst36535a2"
                }
            ]
        }
    ]
}
'''

# 解析JSON为Python字典
data_dict = json.loads(json_content)

# 筛选非空source的条目,提取operation_no
target_operation_nos = [item['operation_no'] for item in data_dict['L'] if item['source']]

# 输出结果
print(target_operation_nos)  # 输出: [123458]

代码说明

  1. JSON解析:使用json.loads()将JSON字符串转为Python字典;若从文件读取,替换为json.load(open('your_file.json', 'r'))。
  2. 筛选逻辑:利用Python的布尔特性,空列表[]会被判定为False,非空列表为True,以此过滤条目。
  3. 提取目标:通过列表推导式快速提取符合条件的operation_no,若需要完整条目,可改为[item for item in data_dict['L'] if item['source']]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:50:24