我在尝试聚合 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/