Dou*_*eed 8 ruby yaml ruby-on-rails
我在我的yaml文件中有一个哈希映射,如下所示.我如何在简单的ruby脚本中迭代它?我希望在迭代期间将键存储在我的ruby程序中的另一个变量中的变量和值中.
source_and_target_cols_map:
-
com_id: community_id
report_dt: note_date
sitesection: site_section
visitor_cnt: visitors
visit_cnt: visits
view_cnt: views
new_visitor_cnt: new_visitors
Run Code Online (Sandbox Code Playgroud)
我从yaml文件获取数据的方式如下:
#!/usr/bin/env ruby
require 'yaml'
config_options = YAML.load_file(file_name)
@source_and_target_cols_map = config_options['source_and_target_cols_map']
puts @source_and_target_cols_map
Run Code Online (Sandbox Code Playgroud)
YAML.load_file 方法应该返回一个 ruby 哈希值,因此您可以使用 each 方法以与通常相同的方式对其进行迭代:
require 'yaml'
config_options = YAML.load_file(file_name)
config_options.each do |key, value|
# do whatever you want with key and value here
end
Run Code Online (Sandbox Code Playgroud)
根据您的文件,您应该从该行yaml得到以下内容Hashconfig_options = YAML.load_file(file_name)
config_options = { 'source_and_target_cols_map' =>
[ { 'com_id' => 'community_id',
'report_dt' => 'note_date',
'sitesection' => 'site_section',
'visitor_cnt' => 'visitors',
'visit_cnt' => 'visits',
'view_cnt' => 'views',
'new_visitor_cnt' => 'new_visitors' }
]}
Run Code Online (Sandbox Code Playgroud)
然后可以采用以下方法进行迭代:
config_options['source_and_target_cols_map'][0].each {|k,v| key = k,value = v}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17168 次 |
| 最近记录: |