python最速のyaml使用例

/ python yaml

https://pyyaml.org/

YAMLを読み込んでJSONで表示する。あらかじめpip install pyyamlしておく。jsonと異なり標準ライブラリでないのが痛いところかもしれない。

import yaml, json

with open('example.yaml', mode='r') as file:
    obj = yaml.safe_load(file.read())

print(json.dumps(obj, indent=4))

簡単すぎてむしろyamlの構文の方が難しい。

yaml in shell commentの例

import re, yaml, json

lines = ""

with open('example.sh', mode='r') as file:
    for line in file:
        m = re.match(r'^.*?#([^!].*)$', line.strip())
        if m:
            lines += m.group(1) + "\n"
        try:
            tmpobj = yaml.safe_load(lines)
        except:
            continue
        obj = tmpobj

print(json.dumps(obj, indent=4))

何かしらのスクリプトを1行ずつ読み取ってreでコメントを抽出していきYAML stringを形成する。 逐一safe_loadに流していき、最後に成功したsafe_loadの結果を出力としてjsonで吐き出す。