我正在将数据从 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
这会导致大型数据集出现问题,因为别名可能彼此相距甚远,难以阅读。
最佳答案
您为什么使用 YAML::Omap 的?
一个更简单、更清晰的解决方案是首先将数据读入哈希数组,如下所示:
a = [ {'name' => 'Ham', 'price' => 2.00, 'quantity' => 1},
{'name' => 'Eggs', 'price' => 0.50, 'quantity' => 12},
{'name' => 'Milk', 'price' => 2.00, 'quantity' => 2} ]
然后就做:
a.to_yaml
导致:
---
- price: 2.0
name: Ham
quantity: 1
- price: 0.5
name: Eggs
quantity: 12
- price: 2.0
name: Milk
quantity: 2
这对你有用吗?
关于没有别名的 Ruby YAML 编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981128/