Tag: yaml

如何在YAML中转义%字符?

如何在YAML中转义%字符?

Ruby中的字符串到数组

我需要我的string : “—\n- aaaadddhh ddddggg\n- bbbdddddf ff ddd\n- cccf\n”转换为Ruby中的array 这就是我想要的: [“aaaadddhh ddddggg”, “bbbdddddf ff ddd”, “cccf”]

Ruby YAML没有别名

我正在从ruby向yaml文件写入数据,我经常在文件中点缀别名。 像: – &id001 somekey: somevalue – *id001 在我的情况下,我使用yaml文件来帮助提高可读性并将名称添加到文件中的值,因为现有数据只是| 没有键的分隔值。 如何防止使用别名编写yaml文件? [编辑] 为了进一步说明,这里是数据类型和问题的一个例子。 原始数据如下: Ham|2.00|1 Eggs|0.50|12 Milk|2.00|2 我已经编写了一个ruby脚本来将其转换为yaml,它也会查看sql文件以获取相应的名称。 yaml文件看起来像: — – !omap – name: Ham – &id001 price: 2.00 – quantity: 1 – !omap – name: Eggs – price: 0.50 – quantity: 12 – !omap – name: Milk – *id001 – quantity: 1 这会导致大型数据集出现问题,因为别名可能彼此无法接近,因此难以阅读。

BigDecimal不能被强制转换为BigDecimal

这应该很简单,但它正在爆炸。 有任何想法吗? d = BigDecimal.new(“2.0”) YAML::load({:a => d}.to_yaml) TypeError: BigDecimal can’t be coerced into BigDecimal from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `inspect’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `inspect’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `block in ‘ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:30:in `call’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:30:in `inspect_value’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/context.rb:260:in `inspect_last_value’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:311:in `output_value’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:273:in `signal_status’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input’ from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in […]

如何使用Nokogiri从Yaml文件创建XML?

我想阅读并打开.yml文件并使用Nokogiri创建XML? 谁能告诉我怎么做? 这是Yaml格式: getOrderDetails: Id: ‘114’ Name: ‘XYZ’ 这是我需要的XML: 123 xyz 这是ruby文件: require ‘nokogiri’ require ‘rubygems’ require ‘spec/spec_helper’ require ‘yaml’ @doc = YAML.load(File.open(File.expand_path(‘/Workspace/XML_Parsing/getDetails_api.yml’‌​))) @doc = File.open(‘/Workspace/XML_Parsing/getDetails_api.yml’) builder = Nokogiri::XML::Builder.new do |xml| xml.doc { @doc.each do |o| o.doc.child { puts “eval(#{doc(:getDetails([‘Id’]))})” puts “#{doc[‘NameCode’]}” #o.OrderNo #o.EnterpriseCode } end } end puts builder.to_xml

在rspec中没有正确加载to_yaml文件(rails项目)

我正在尝试将我的开发sqlite3数据库导出到我的测试数据库中。 为了做到这一点,我首先将我的模型导出到rails控制台并将其保存到文件中。 > MyModel.all.to_yaml # this was saved to mymodels.yml 现在当我运行rspec时,它在尝试解析mymodels.yml时失败了。 我得到的错误是: Failure/Error: Unable to find matching line from backtrace a YAML error occurred parsing /Users/MakeM/MyProject1/spec/fixtures/mymodels.yml. 请注意,YAML必须始终使用空格缩进。 不允许使用标签。 请查看http://www.yaml.org/faq.html确切的错误是:NoMethodError:nil的未定义方法`keys’:NilClass 知道我为什么会收到这个错误吗? 我应该提到的一点是,to_yaml输出的yaml对我来说有点奇怪。 这是它的一部分: — – !ruby/object:MyModel attributes: id: 133 book: FirstBook chapters: 50 created_at: 2010-10-06 05:03:15.709931 updated_at: 2010-10-06 05:03:15.709931 abbr: FB attributes_cache: {} changed_attributes: {} destroyed: […]

使用YAML.load解析json是否安全?

我使用的是ruby 2.1.0 我有一个json文件。 例如:test.json { “item”:[ {“apple”: 1}, {“banana”: 2} ] } 使用YAML.load加载此文件是否安全? YAML.load(File.read(‘test.json’)) 我正在尝试加载json或yaml格式的文件。

保留从Ruby中的文件加载YAML的关键顺序

我想保留从磁盘加载的YAML文件中的键的顺序,以某种方式处理并写回磁盘。 这是在Ruby中加载YAML的基本示例(v1.8.7): require ‘yaml’ configuration = nil File.open(‘configuration.yaml’, ‘r’) do |file| configuration = YAML::load(file) # at this point configuration is a hash with keys in an undefined order end # process configuration in some way File.open(‘output.yaml’, ‘w+’) do |file| YAML::dump(configuration, file) end 不幸的是,一旦构建了哈希,这将破坏configuration.yaml键的顺序。 我找不到控制YAML::load()使用什么数据结构的方法,例如alib的orderedmap 。 我没有运气在网上寻找解决方案。

来自rails控制台的YAML输出

在rails控制台中执行像y Grau.all这样的命令时,我得到了这些奇怪的!binary字符串而不是属性的名称。 知道如何解决这个问题吗? 谢谢。 irb(main):003:0> y Grau.all ←[1m←[36mGrau Load (0.0ms)←[0m ←[1mSELECT “graus”.* FROM “gr ←[1m←[35mEXPLAIN (0.0ms)←[0m EXPLAIN QUERY PLAN SELECT “grau EXPLAIN for: SELECT “graus”.* FROM “graus” 0|0|0|SCAN TABLE graus (~1000000 rows) — – !ruby/object:Grau attributes: !binary “aWQ=”: 27 !binary “bm9tZQ==”: 1 Grau !binary “Y3JlYXRlZF9hdA==”: 2012-04-06 21:24:34.553163000 Z !binary “dXBkYXRlZF9hdA==”: 2012-04-06 21:24:34.553163000 Z – !ruby/object:Grau […]

Rails 3 – ‘无法解析Yaml’

我不知道我做错了什么。 我尝试运行’rails c’,但它只是给了我一个错误。 它在10分钟前工作。 :\ C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse’: couldn’t parse YAML at line 2 column 12 (Psych::SyntaxError) from C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse_stream’ from C:/Ruby192/lib/ruby/1.9.1/psych.rb:119:in `parse’ from C:/Ruby192/lib/ruby/1.9.1/psych.rb:106:in `load’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic ation/configuration.rb:88:in `database_configuration’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_r ecord/railtie.rb:58:in `block (2 levels) in ‘ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ support/lazy_load_hooks.rb:36:in `instance_eval’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ support/lazy_load_hooks.rb:36:in `execute_hook’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ support/lazy_load_hooks.rb:43:in `block in run_load_hooks’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ support/lazy_load_hooks.rb:42:in `each’ […]