metavar='FILE', default=stdin, type=argparse.FileType('r')) argp.add_argument('-t', '--input-type', help='Input file type', choices=('json', 'csv'), default='json') argp.add_argument(help='Sqlalchemy model file (model.py)', metavar='FILE', dest='model', type=argparse.FileType('r')) return vars(argp.parse_args()) if __name__ == '__main__': args = argparser() model = {} try: exec(args['model'].read(), model) except: exit('[!] cannot import model (%s)' % args['model'].name) if args['input_type'] == 'json': for line in readlines(args['input']): item = insert(model, *parse_json(line)) model['session'].add(item) elif args['input_type'] == 'csv': print >> stderr, '[!] TODO CSV support' print model['session'].commit()
,default = stdin ,type = argparse.FileType('r') ) argp.add_argument('-t', '--input-type' ,help = 'Input file type' ,choices = ('json', 'csv') ,default = 'json' ) argp.add_argument(help = 'Sqlalchemy model file (model.py)' ,metavar = 'FILE' ,dest = 'model' ,type = argparse.FileType('r') ) return vars(argp.parse_args()) if __name__ == '__main__': args = argparser() model = {} try: exec(args['model'].read(), model) except: exit('[!] cannot import model (%s)' % args['model'].name) if args['input_type'] == 'json': for line in readlines(args['input']): item = insert(model, *parse_json(line)) model['session'].add(item) elif args['input_type'] == 'csv': print >>stderr, '[!] TODO CSV support' print model['session'].commit()
argp = argparse.ArgumentParser(description='Scraptils JSON SQLizer') argp.add_argument('-i', '--input' ,help = 'Input file - default is STDIN' ,metavar = 'FILE' ,default = sys.stdin ,type = argparse.FileType('r') ) argp.add_argument('-t', '--input-type' ,help = 'Input file type' ,choices = ('json', 'csv') ,default = 'json' ) argp.add_argument('-d', '--db' ,help = 'Database connection string - default is \'sqlite:///data.sqlite\'' ,default = 'sqlite:///data.sqlite' ) return vars(argp.parse_args()) if __name__ == '__main__': #r = parse_json(json.dumps({'_name': 'data_table', 'test_int': 6, 'test_float': 4.4, 'test_str': 'asdf', 'conn_table': {'test_bool': True}})) #print parse_json(json.dumps({'_name': 'data_table', 'test_int': 6, 'test_float': 4.4, 'test_str': 'asdf', 'conn_table': {'test_bool': True}}), r) args = argparser() schema = {} if args['input_type'] == 'json': for line in readlines(args['input']): schema = discover(*parse_json(line), schema=schema) elif args['input_type'] == 'csv': schema = discover(*parse_csv(args['input']), schema=schema) print createschema(schema, args['db'])