2011-12-26 46 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)