python - JSON GroupBy 2 属性 - Python

标签 python json pandas-groupby python-itertools

我在尝试聚合 JSON 属性时遇到一些困难。 基本上,我想做的是通过两个属性 'To''TemplateName''InputTable' 数组中的对象进行分组。 JSON 模板如下所示:

x = {
        "InputTable" : 
        [
            {
                "ServerName":"ServerOne",
                "To":"David", 
                "CC":"Oren", 
                "TemplateName":"LinuxVMOne", 
            },
            {
                "ServerName":"ServerTwo",
                "To":"David", 
                "CC":"", 
                "TemplateName":"LinuxVMOne", 
            },
            {
                "ServerName":"ServerThree",
                "To":"David", 
                "CC":"", 
                "TemplateName":"LinuxVMTwo", 
            },
            {
                "ServerName":"ServerFour",
                "To":"Sam", 
                "CC":"Samer", 
                "TemplateName":"LinuxVMOne", 
            }   
        ]
}

预期结果看起来像这样,带有分组对象的列表列表:

[ 
   [

      {
                "ServerName":"ServerOne",
                "To":"David", 
                "CC":"Oren", 
                "TemplateName":"LinuxVMOne"
      },
      {
                "ServerName":"ServerTwo",
                "To":"David", 
                "CC":"", 
                "TemplateName":"LinuxVMOne", 
      },

  ],

  [
      {
                "ServerName":"ServerThree",
                "To":"David", 
                "CC":"", 
                "TemplateName":"LinuxVMTwo", 
      },

  ],

  [
      {
                "ServerName":"ServerFour",
                "To":"Sam", 
                "CC":"Samer", 
                "TemplateName":"LinuxVMOne", 
      }
  ] 



]

]

不使用 pandas 是否可以做到这一点? 谢谢。

最佳答案

此代码有效:

但我认为我们可以让代码更简洁!

y = []
for i in x["InputTable"]:
    if len(y) == 0:
        y.append([i])
    else:
        for j in y:
            if len(j) > 0:
                if j[0]["To"] == i["To"] and j[0]["TemplateName"] == i["TemplateName"]:
                    j.append(i)
                    break
                else:
                    y.append([i])
                    break   
            else:
                y.append([i])
                break

关于python - JSON GroupBy 2 属性 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56476957/

相关文章:

java - 在java中从json数组生成Excel工作表报告

python - 循环遍历 groupby 为 pandas 中的名称分配数字

python - groupby 语句中是否可以包含不直接参与计算的列?

python - 列表理解用 0 替换数组中的前 n 项

Python计算某些数字的问题

javascript - 对 JavaScript 数组中每个不同值的变量赋予不同的值

c# - Json Serialize Dictionary<Enum, Int32> 的问题

Python C-API 段错误

python - CNN 模型无法做出预测

python - Pandas DataFrame 基于条件进行分组