У меня есть экземпляр, который выглядит следующим образом:
{
"_id": "cgx",
"capacity": 1000000000,
"chunks": [
{
"prs": [
{
"segs": [
{
"node_id": "server-0",
}
]
}
]
},
{
"prs": [
{
"segs": [
{
"node_id": "server-2",
}
]
},
{
"segs": [
{
"node_id": "server-3",
}
]
}
]
}
],
"health": "healthy",
"status": "ok"
}
каждый «чанк» в массиве чанков является экземпляром Chunk, каждый «pr» в массиве prs является экземпляром Pr, каждый «seg»'в массиве segs находится экземпляр Seg
Я хочу пройти через экземпляр и накапливать набор значений' node_id 'из всех экземпляров.Я сделал это следующим образом:
def setDistinctElements(self, result):
elements = []
for chunk in getattr(result, 'chunks'):
for pr in getattr(chunk, 'prs'):
for seg in getattr(pRaid, 'segs'):
elements.append(getattr(seg, 'node_id'))
Есть ли более эффективный способ сделать это вместо цикла 3 раза?В каждом таком экземпляре может быть много вложенных экземпляров «chunks», «prs» и «segs».