gpt4 book ai didi

python - JSON GroupBy 2 属性 - Python

转载 作者:行者123 更新时间:2023-12-01 00:52:17 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com