Python中如何将JSON对象数组按指定容量拆分为多个子数组
数组拆分实现方案
需求要点
- 提取指定JSON结构中
EventSelectors字段内的所有对象 - 拆分后的每个子数组包含的对象数量不超过20个
- 保留原数组内对象的先后顺序
核心实现逻辑
- 先从源JSON数据中取出完整的
EventSelectors数组 - 从数组头部开始,每次截取长度为20的子片段,直到整个原数组遍历完成
- 所有截取得到的子片段即为最终拆分结果
代码示例
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
相关产品推荐
相关产品推荐

