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

Python中如何将JSON对象数组按指定容量拆分为多个子数组

数组拆分实现方案

需求要点

  • 提取指定JSON结构中EventSelectors字段内的所有对象
  • 拆分后的每个子数组包含的对象数量不超过20个
  • 保留原数组内对象的先后顺序

核心实现逻辑

  1. 先从源JSON数据中取出完整的EventSelectors数组
  2. 从数组头部开始,每次截取长度为20的子片段,直到整个原数组遍历完成
  3. 所有截取得到的子片段即为最终拆分结果

代码示例

Python 版本

# 源数据(已解析为字典格式)
source_data = {
    "EventSelectors": [
        {
            "IncludeManagementEvents": True,
            "DataResources": [],
            "ReadWriteType": "All"
        },
        # 更多EventSelectors对象省略
    ],
    "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName"
}

full_selectors = source_data["EventSelectors"]
max_per_array = 20

# 拆分逻辑
split_arrays = [full_selectors[i:i+max_per_array] for i in range(0, len(full_selectors), max_per_array)]

执行完成后split_arrays就是拆分后的所有子数组集合,每个子数组长度不超过20。

JavaScript 版本

// 源数据
const sourceData = {
    "EventSelectors": [
        {
            "IncludeManagementEvents": true,
            "DataResources": [],
            "ReadWriteType": "All"
        },
        // 更多EventSelectors对象省略
    ],
    "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName"
}

const fullSelectors = sourceData.EventSelectors
const maxPerArray = 20
const splitArrays = []

for (let i = 0; i < fullSelectors.length; i += maxPerArray) {
    splitArrays.push(fullSelectors.slice(i, i + maxPerArray))
}

执行完成后splitArrays即为拆分结果。

效果示例

如果原EventSelectors数组共有52个对象,拆分后结果为:

  • 第一个子数组包含第1~20个对象
  • 第二个子数组包含第21~40个对象
  • 第三个子数组包含第41~52个对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:12:02