jsonに限らないschema
Rubyには、yamlデータが期待した条件を満たしているかどうか検証する、
Kwalify
というライブラリがあります。
Rubyist Magazine - プログラマーのための YAML 入門 (検証編)
でも、KwalifyにはPython版は無いみたいなのです。
別にyamlを検証するライブラリがないか探していたら、ありました。
JSON Schema is a specification for a JSON-based format for defining the structure of JSON data.
よし、YAMLからJSONに移ろう!
・・・と、思いましたが、よく考えるとJSON SchemaはJSON Schemaと言いつつYAMLにも使えます。
JSON SchemaはデータがJSONから読み込んだか、YAMLから読み込んだか、
miniconfから読み込んだかを、気にしないんです。
schemaもPythonで直接書けば、JSONゼロで使えるんです、JSON Schemaを。
data = open("dw.yaml").read() obj = yaml.load(data) schema = { "type" : "object", "properties": { "folders": { "type" : "array", }, "patterns": {"type":"array"}, "html" : {"type": "string"}, "css" : { "type": "string", "optional" : True, "default" : "dw.css", }, "fit" : {"type": "string"}, "html2bmp_cmdline" : {"type": "string"}, "resize_cmdline" : {"type": "string"} } } jsonschema.validate(obj, schema)
これで、ConfigParserにはオサラバですね。