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で吐き出す。