forked from kennethreitz/records
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrandomuser-sqlite.py
More file actions
35 lines (27 loc) · 1.16 KB
/
Copy pathrandomuser-sqlite.py
File metadata and controls
35 lines (27 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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'))