Ruby-将文件解析为哈希
我有一个包含数百个对象和值组合的文件,如下所示。我想从用户那里获取输入,作为对象名和数值,并返回关联的值Ruby-将文件解析为哈希,ruby,dictionary,ruby-hash,Ruby,Dictionary,Ruby Hash,我有一个包含数百个对象和值组合的文件,如下所示。我想从用户那里获取输入,作为对象名和数值,并返回关联的值 Object cefcFRUPowerOperStatus Type PowerOperType 1:offEnvOther 2:on 3:offAdmin 4:offDenied 5:offEnvPower 6:offEnvTemp Object cefcModuleOperSta
Object cefcFRUPowerOperStatus
Type PowerOperType
1:offEnvOther
2:on
3:offAdmin
4:offDenied
5:offEnvPower
6:offEnvTemp
Object cefcModuleOperStatus
Type ModuleOperType
1:unknown
2:ok
3:disabled
4:okButDiagFailed
5:boot
6:selfTest
例如-输入-
objectName = 'cefcModuleOperStatus'
TypeNumber = '4'
返回-'okButDiagFailed'
我不了解Ruby,所以我做这件事是为了帮助我的同龄人。所以,如果这是一个新手问题,请原谅
注意:-我必须创建文件,因此使用任何文件格式都会非常有帮助。如果您说您可以控制创建原始数据文件,那么使用json格式创建它将使访问变得非常简单 这是一本书。只需选择
main.rb
文件并点击run
例如,如果您创建json文件,如:
data.json
然后,在Ruby中解析和访问它非常简单:
require 'json'
file = File.read('data.json')
data = JSON.parse(file)
#accessing this data is simple now:
puts data["cefcModuleOperStatus"]["status"]["4"]
# > okButDiagFailed
注意:如果您的状态是唯一的,则此JSON格式将起作用。如果不是,您仍然可以使用这种方式,但需要将JSON转换为数组格式。如果是这种情况,请告诉我,我可以向您展示如何为此修改json和ruby代码
希望这能有所帮助,如果您对如何工作有进一步的疑问,请告诉我 如果像您所说的,您可以控制创建原始数据文件,那么以json格式创建它将使访问变得微不足道 这是一本书。只需选择
main.rb
文件并点击run
例如,如果您创建json文件,如:
data.json
然后,在Ruby中解析和访问它非常简单:
require 'json'
file = File.read('data.json')
data = JSON.parse(file)
#accessing this data is simple now:
puts data["cefcModuleOperStatus"]["status"]["4"]
# > okButDiagFailed
注意:如果您的状态是唯一的,则此JSON格式将起作用。如果不是,您仍然可以使用这种方式,但需要将JSON转换为数组格式。如果是这种情况,请告诉我,我可以向您展示如何为此修改json和ruby代码
希望这能有所帮助,如果您对如何工作有进一步的疑问,请告诉我 你能把这个输入文件转换成JSON或YAML或者其他更传统的格式吗?即使是CSV也会是一个进步。@tadman:是的,我能。从任何文件格式转换都会有帮助。@tadman完全正确。请检查我的答案,通过一个工作示例说明如何做到这一点。您尝试了什么?您遇到问题的代码是什么?你的代码有什么问题?你有错误吗?如果是,您得到的准确错误是什么?实际结果是否与预期结果不同?如果是,你期望的结果是什么,你为什么期望这个结果,实际结果是什么,它们有什么区别?观察到的代码行为是否与预期行为不同?如果是,预期的行为是什么?为什么?你看到的行为是什么?它们有什么区别?预期行为的规范是什么?您可以将该输入文件转换为JSON或YAML或其他更常规的格式吗?即使是CSV也会是一个进步。@tadman:是的,我能。从任何文件格式转换都会有帮助。@tadman完全正确。请检查我的答案,通过一个工作示例说明如何做到这一点。您尝试了什么?您遇到问题的代码是什么?你的代码有什么问题?你有错误吗?如果是,您得到的准确错误是什么?实际结果是否与预期结果不同?如果是,你期望的结果是什么,你为什么期望这个结果,实际结果是什么,它们有什么区别?观察到的代码行为是否与预期行为不同?如果是,预期的行为是什么?为什么?你看到的行为是什么?它们有什么区别?预期行为的规范是什么?