如何更新 ruby 中的 yaml 根密钥

How to update the yaml root key in ruby

我需要比较 yaml 文件以确定其中的差异,为此我需要 yaml 文件以相同的根密钥开头。是否可以更新 ruby 中的 yaml 根密钥? (注:不是yml文件中的值)

Yaml 文件示例:

person:
  name: abc
  age: 10
  address: xyz

我的要求是更新 yaml 文件如下。

student:
  name: abc
  age: 10
  address: xyz

在此先感谢您的帮助!!!

我不是 100% 确定你在找什么,但是一旦你加载了 yaml,你最终会得到一个 ruby 哈希。然后,您可以为根密钥创建一个新名称的新哈希。

例如这个:

require 'yaml'

input = 
"person:
  name: abc
  age: 10
  address: xyz"

obj = YAML.load(input)
new_obj = {"student" => obj["person"]}
output = YAML.dump(new_obj)
puts output

将打印:

---
student:
  name: abc
  age: 10
  address: xyz

如果出于某种原因您不想要文档 header“---”,您可以将其删除。

no_header = output.split("\n").drop(1).join("\n")
puts no_header

将打印:

student:
  name: abc
  age: 10
  address: xyz