#!/usr/bin/env python2 import datetime import json import sys import toml try: _range = xrange iteritems = dict.iteritems except NameError: unicode = str _range = range basestring = str unichr = chr iteritems = dict.items long = int def tag(value): if isinstance(value, dict): d = { } for k, v in iteritems(value): d[k] = tag(v) return d elif isinstance(value, list): a = [] for v in value: a.append(tag(v)) try: a[0]["value"] except KeyError: return a except IndexError: pass return {'type': 'array', 'value': a} elif isinstance(value, basestring): return {'type': 'string', 'value': value} elif isinstance(value, bool): return {'type': 'bool', 'value': str(value).lower()} elif isinstance(value, int): return {'type': 'integer', 'value': str(value)} elif isinstance(value, long): return {'type': 'integer', 'value': str(value)} elif isinstance(value, float): return {'type': 'float', 'value': repr(value)} elif isinstance(value, datetime.datetime): sdate = value.strftime('%Y-%m-%dT%H:%M:%SZ') return {'type': 'datetime', 'value': sdate} assert False, 'Unknown type: %s' % type(value) if __name__ == '__main__': tdata = toml.loads(sys.stdin.read()) tagged = tag(tdata) print(json.dumps(tagged))