ruby - 解析嵌套哈希并迭代以创建带有输出的 ruby 文件
问题描述
所以我试图迭代这个嵌套的哈希来创建一个步骤指南,我想创建一个包含信息的文件和输出文件,以将输出写成如下:
steps_guide elemento1 elemento2 elemento3
steps_guide elemento2 elemento3 elemento4
steps_guide elemento3 elemento4 elemento5
steps_guide elemento4 elemento5 elemento6
steps_guide 收音机氙气铝
steps_guide 氙气铝硼
有没有办法做到这一点?我尝试遍历哈希但未成功并使用 each_cons 进行迭代但仍然相同
你能帮助我吗?我真的坚持这个
这是我的嵌套哈希
_Data =[
{
"name": "script",
"elements": [
{
"name": "unknown group",
"headers": {
"map": {}
},
"agent": "",
"bottom_comments": [],
"checks": [
{
"title": "",
"field": "elemento1",
"value": "0",
},
{
"title": "",
"field": "elemento2",
"value": "0",
},
{
"title": "",
"field": "elemento3",
"value": "0",
},
{
"title": "",
"field": "elemento4",
"value": "0",
},
{
"title": "",
"field": "elemento5",
"value": "0",
},
{
"title": "",
"field": "elemento6",
"value": "1",
},
{
"title": "",
"field": "elemento7",
"value": "1",
},
{
"title": "",
"field": "elemento8",
"value": "1",
},
{
"title": "",
"field": "elemento9",
"value": "1",
},
{
"title": "",
"field": "elemento10",
"value": "0",
},
{
"type": "condiciones",
"elementos": [
{
"table": [
{
"title": "",
"name": "radio",
},
{
"title": "",
"name": "xenon",
},
{
"title": "",
"name": "aluminio",
},
{
"title": "",
"name": "boro",
},
{
"title": "",
"name": "oro",
},
{
"title": "",
"name": "bromo",
},
{
"title": "",
"name": "oxigeno",
}
]
}
]
}
]
}
]
}
]
解决方案
each_cons
是正确的使用方法。您可能只是遇到了麻烦,因为您的数据结构非常复杂。部分问题在于表结构的最后一部分是它自己的特殊结构。将它们分开处理。
all_checks = data[0][:elements][0][:checks]
checks = all_checks[0...-1] # all but the last one
checks.each_cons(3).each do |a, b, c|
puts "steps_guide #{a[:field]} #{b[:field]} #{c[:field]}"
end
elementos = all_checks[-1][:elementos][0][:table]
elementos.each_cons(3).each do |a, b, c|
puts "steps_guide #{a[:name]} #{b[:name]} #{c[:name]}"
end
可能会让您失望的一件事是,"title":
在 Ruby 哈希中定义了一个名为的符号:title
,而不是 JSON 中的字符串。
推荐阅读
- c# - 将外部 C# 脚本作为源添加到 PowerShell 脚本
- python - 如何在 Python 中将 Azure Blob 文件 CSV 转换为 Excel
- android - 我的应用程序可以完美展示广告,但 admob 应用程序页面上没有任何点击次数/展示次数/收入
- python - solidity - brownie compile - 状态 404 从 GitHub 获取包版本
- flutter - 是否可以根据布尔值添加或删除列表?
- python - Python数据类,default_factory包含列表的默认字典列表的正确方法?
- c++ - C++ 模块文件系统和 iostream 崩溃 g++
- neural-network - Tanh 激活函数的缩放
- javascript - 节点 package.json 脚本未在 Windows 上运行 - 找不到模块 yarn.js
- memory-management - Datadog % Mem 使用率和 RSS 内存