#!/usr/bin/env python3 import json import sys import yaml def text_representer(dumper, data): if '\n' in data: return dumper.represent_scalar( u'tag:yaml.org,2002:str', data, style='|') return dumper.represent_scalar( u'tag:yaml.org,2002:str', data, style='') yaml.add_representer(str, text_representer) #yaml.add_representer(unicode, text_representer) def dump(f): for line in f: obj = json.loads(line.strip()) yaml.dump( obj, stream=sys.stdout, indent=4, default_flow_style=False, explicit_start=True, explicit_end=True, Dumper=yaml.CSafeDumper) if len(sys.argv) == 1: dump(sys.stdin) else: for filename in sys.argv[1:]: with open(filename) as f: dump(f)