【问题标题】:Split an Array of Json Objects into multiple Arrays In Python [duplicate]在Python中将一个Json对象数组拆分为多个数组[重复]
【发布时间】:2021-11-02 02:48:56
【问题描述】:

我有一个包含多个 json 对象的数组,我想根据 json 对象的数量将它们分成多个数组。以每个 Array 包含的对象不超过 10 个为例。

[{object-1}, {object-2},....,{object-n}]
Array-1 = [{object-1}, ....,{object-10}]
Array-2 = [{object-11}, ....,{object-21}]
Array-3 = [{object-22}, {object-22}]

查看实际数据,请注意下面的 EventsSelectors 数组。我正在寻找的是提取 EventSelectors 中的所有对象并将它们分解为多个 EventsSelector 数组以供以后处理。最大记录数不应超过 20 条记录。

{
    "EventSelectors": [
        {
            "IncludeManagementEvents": true,
            "DataResources": [],
            "ReadWriteType": "All"
        },
        {
            "IncludeManagementEvents": true,
            "DataResources": [],
            "ReadWriteType": "All"
        },
        {
            "IncludeManagementEvents": true,
            "DataResources": [],
            "ReadWriteType": "All"
        }

    ],
    "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName"
}

谢谢

【问题讨论】:

  • 分享实际数据(仅限子集),解释输出应该是什么样子。也分享你目前的努力(python 代码)

标签: python arrays json object


【解决方案1】:

见下文

def slicer(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]


N = 3
data = [{6}, {7}, {8}, {8}, {1}, {2}, {5}, {77}, {88}, {654}]
sliced = {idx: data for idx, data in enumerate(slicer(data, N))}
print(sliced)

输出

{0: [{6}, {7}, {8}], 1: [{8}, {1}, {2}], 2: [{5}, {77}, {88}], 3: [{654}]}

【讨论】:

  • 您能否为您的解决方案添加一些解释
  • “切片器”是一个生成器,每次调用时都会返回(产生)一个切片。外部循环创建一个字典,其中键是索引,值是切片。
  • 如何遍历切片的大数组。对于 i in sliced print i 类似的东西。
  • 结果是一个字典。看看你如何迭代一个字典(比如一个 java Map)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2020-06-25
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多