#!/usr/bin/env python3 # -*- indent-tabs-mode: nil -*- vi: set expandtab: """ NAME yamltojson - convert a yaml file to a json file SYNOPSIS yamltojson file.yaml ... DESCRIPTION Read in a yaml file (whose name must end with ".yaml") and create cor‐ responding json files, whose names will end with ".json". """ import sys, re, yaml try: import simplejson as json except: import json def die(msg): """ generate a FATAL message to stdout and exit """ print("%s:FATAL:%s" % (date(), msg)) sys.exit(2) for fname in sys.argv[1:]: if fname.endswith(".yaml"): y = None with open(fname, "r") as fd: try: contents = fd.read() contents = re.sub("^\t+", " ", contents, flags=re.M) y = yaml.safe_load(contents) except: die("Invalid yaml in '%s'" % fname) jsonfname = fname[:-5] + ".json" with open(jsonfname, "w") as fd: json.dump(y, fd, indent=4, sort_keys=True)