【问题标题】:Merging an array of json objects using python使用python合并一个json对象数组
【发布时间】:2021-02-22 17:14:39
【问题描述】:

我有一个 json 对象的 python 数组,我只需这样做即可实例化:

results = []

然后我进行 API 调用,并将 api_results['a_results'] 分配给我的数组,如下所示:

api_results = api_func(url, session)
if loop = 0:
     results.append(api_results['a_results']) #NB: The 'a_results' object here is an array of json 
else:
     results[0].append(api_results['a_results'])
objects

第一次调用时,一切都按预期工作:

[
   [
      {
         object 1
      },
      {
         object 2
      }
   ]
]

但是,如果找不到一定数量的结果,则逻辑会再次循环,我希望将新结果附加到旧对象。这就是我遇到问题的地方。

下一次迭代,对象是这样的:

[
   [
      {
         old object 1
      },
      {
         old object 2
      },
      [
         {
            new object 3
         },
         {
            new object 4
         }
      ]
   ]
]

所以数组被附加在对象 2 之后,而不是实际的对象。

有什么办法可以解决这个问题吗?本质上,当不满足阈值时,我想要一个由 4 个对象组成的数组,而不是一个由原始 2 个对象组成的数组,然后是一个包含 2 个新对象的子数组。

我真的想在数组中追加对象,而不是我猜的数组

【问题讨论】:

  • 尝试将 else 语句更改为 records.append(api_results['a_results'])
  • 这只会导致第三个和第四个对象被添加为不同级别的数组

标签: python arrays python-3.x


【解决方案1】:

好的,所以我很高兴这样做:

if page == 0:
   results.append(api_results['a_results'])
   results = results[0]
else:
   for i in api_results['a_results']:
   results.append(i)

对于第二个数组中的每个元素,附加对象(例如对象 3 和 4)

这也摆脱了不必要的外部数组对象。

不过,这可能不是解决问题的最有效方法。

【讨论】:

    猜你喜欢
    • 2016-02-25
    • 2018-08-09
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    相关资源
    最近更新 更多