2011-12-26 51 views
1

这发生在我之前几次:通过太多的复制粘贴,我在我的Play YAML文件中定义了多个具有相同ID的实体。如何验证YAML Play上没有重复的条目?

这不会产生一个很好的错误(“在YAML中定义的重复实体:'foo'),而是使YAML解析对我来说”表现很奇怪“。我相信在其他情况下,它只会默默地放弃重复的实体。

什么是验证YAML文件没有重复,如果它确实能产生明显的错误的好办法?

+0

我也看到有没有被正确地分析没有错误或警告日期问题记录... – Somatik 2011-12-27 11:27:22

回答

0

你的实体使用约束?独特的支票?

+0

我指的是每个实体获得的“YAML ID” - 这个字符串不会以任何方式反映在模型中,它只是用来引用其他YAML实体。它不存在于模型本身中。 – ripper234 2011-12-26 16:39:47

+0

但是,如果您复制行,您将有一些字段的重复数据。你应该检查这些字段。 – 2011-12-26 17:32:35

+0

我目前有一个加载YAML文件的错误,但是错误并不能解释问题。我想在加载YAML之前运行验证步骤。 – ripper234 2011-12-27 06:53:02

0

如果它是确定使用一个外部工具,一个linter可以验证你的YAML文件没有重复。例如,你可以使用yamllint命令:

sudo pip install yamllint 

具体来说,它有一个规则key-duplicates,其检测重复的条目:

$ cat test.yml 
foo: bar 
foo: baz 

$ yamllint test.yml 
test.yml 
    2:1  error duplication of key "foo" in mapping (key-duplicates)