Exemplo n.º 1
0
                      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()
Exemplo n.º 2
0
                     ,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()
Exemplo n.º 3
0
    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'])