python - 有没有一种有效的方法来从 Python 中的嵌套实例中累积值?
问题描述
我有一个看起来像这样的实例:
{
"_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"
}
chunks 数组中的每个“chunk”都是一个 Chunk 实例,prs 数组中的每个“pr”都是一个 Pr 实例,segs 数组中的每个“seg”都是一个 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 次?每个这样的实例都可以有很多嵌套在其中的“块”、“prs”和“segs”实例。
解决方案
我无法运行你的代码,所以做了一个类似的。为了更快地运行它,我将 json 转换为字符串并弄乱它以获得我需要的东西。它几乎快 X2 1
lst = []
for row in a.replace('[','').replace(' ','').replace('{','').replace('\n','').replace(']','').replace('}','').replace('"','').sp
lit(','):
if "node_id" in row:
lst.append(row.split(':')[-1])
推荐阅读
- robotframework - 评估表达式'[
我正在尝试验证演练弹出窗口,每次关闭时我都会执行此关键字以再次打开它,但如果我多次执行它会失败并出现错误。语法是正确的,因为我可以在其他 TC 中执行 2-3 次。谁能帮我理解问题出在哪里?
Open Walkthrough Guide If It is Closed ${ELEMS}=
- javascript - 如果不为空,则返回(功能)组件
- python - 向包含中的 django 路由发送额外参数
- pine-script - 如何为自定义 pine 脚本策略创建输入模板/预设?
- c# - 我可以得到在 http 请求中返回的实际错误吗?
- c# - SQL - 一起购买的产品列表
- python - 在 iter 上调用 next,有选择地在任何文件句柄上调用?
- python - zsh杀死了jupyter notebook,如何解决?
- python - 无法使用 Rpy2 访问 kmeans insidess 值
- html - 为什么我的列不能保持小屏幕尺寸的高度?