From 1fc16b52736ba2f794c7111366a66f4eba8ced9e Mon Sep 17 00:00:00 2001 From: Taryn Hill Date: Sat, 27 Feb 2016 18:47:14 -0600 Subject: [PATCH] Add example usage with sqlite --- examples/randomuser-sqlite.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/randomuser-sqlite.py diff --git a/examples/randomuser-sqlite.py b/examples/randomuser-sqlite.py new file mode 100644 index 0000000..8d14024 --- /dev/null +++ b/examples/randomuser-sqlite.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +import json # https://docs.python.org/3/library/json.html +import requests # https://github.com/kennethreitz/requests +import records # https://github.com/kennethreitz/records + +# randomuser.me generates random 'user' data (name, email, addr, phone number, etc) +r = requests.get('http://api.randomuser.me/0.6/?nat=us&results=10') +j = r.json()['results'] + +# Valid SQLite URL forms are: +# sqlite:///:memory: (or, sqlite://) +# sqlite:///relative/path/to/file.db +# sqlite:////absolute/path/to/file.db + +# records will create this db on disk if 'users.db' doesn't exist already +db = records.Database('sqlite:///users.db') + +db.query('DROP TABLE IF EXISTS persons') +db.query('CREATE TABLE persons (key int PRIMARY KEY, fname text, lname text, email text)') + +for rec in j: + user = rec['user'] + name = user['name'] + + key = user['registered'] + fname = name['first'] + lname = name['last'] + email = user['email'] + db.query('INSERT INTO persons (key, fname, lname, email) VALUES(:key, :fname, :lname, :email)', + key=key, fname=fname, lname=lname, email=email) + +rows = db.query('SELECT * FROM persons') +print(rows.export('csv'))