#!/usr/bin/env python import sys import json from optparse import OptionParser if __name__ == '__main__': parser = OptionParser() parser.add_option("-o", "--output", action="store", help="Format to output, e.g. -o 'id,name,age,some_other_field'") parser.add_option("-r", "--root", action="store", help="Root JSON object to refer to fields from, e.g. -r 'results'") (options, args) = parser.parse_args() jsonstr = sys.stdin.read() data = json.loads(jsonstr) # print options root_obj = data[options.root] if options.root else data # print root_obj headers = options.output.split(',') print options.output rows = [map(lambda header: str(values[header]), headers) for values in root_obj] for row in rows: print ','.join(row)