mirror of
https://github.com/kennethreitz/records.git
synced 2026-06-05 06:46:17 +00:00
fix earlier commit
This commit is contained in:
@@ -1,35 +1,36 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
|
|
||||||
import json # https://docs.python.org/3/library/json.html
|
import json
|
||||||
import requests # https://github.com/kennethreitz/requests
|
import requests
|
||||||
import records # https://github.com/kennethreitz/records
|
import records
|
||||||
|
|
||||||
# randomuser.me generates random 'user' data (name, email, addr, phone number, etc)
|
# Fetch random user data from randomuser.me API
|
||||||
r = requests.get('http://api.randomuser.me/0.6/?nat=us&results=10')
|
response = requests.get('http://api.randomuser.me/0.6/?nat=us&results=10')
|
||||||
j = r.json()['results']
|
user_data = response.json()['results']
|
||||||
|
|
||||||
# Valid SQLite URL forms are:
|
# Database connection string
|
||||||
# sqlite:///:memory: (or, sqlite://)
|
DATABASE_URL = 'sqlite:///users.db'
|
||||||
# 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
|
# Initialize the database
|
||||||
db = records.Database('sqlite:///users.db')
|
db = records.Database(DATABASE_URL)
|
||||||
|
|
||||||
|
# Create the 'persons' table
|
||||||
db.query('DROP TABLE IF EXISTS persons')
|
db.query('DROP TABLE IF EXISTS persons')
|
||||||
db.query('CREATE TABLE persons (key int PRIMARY KEY, fname text, lname text, email text)')
|
db.query('CREATE TABLE persons (key INTEGER PRIMARY KEY, fname TEXT, lname TEXT, email TEXT)')
|
||||||
|
|
||||||
for rec in j:
|
|
||||||
user = rec['user']
|
|
||||||
name = user['name']
|
|
||||||
|
|
||||||
|
# Insert user data into the 'persons' table
|
||||||
|
for record in user_data:
|
||||||
|
user = record['user']
|
||||||
key = user['registered']
|
key = user['registered']
|
||||||
fname = name['first']
|
fname = user['name']['first']
|
||||||
lname = name['last']
|
lname = user['name']['last']
|
||||||
email = user['email']
|
email = user['email']
|
||||||
db.query('INSERT INTO persons (key, fname, lname, email) VALUES(:key, :fname, :lname, :email)',
|
db.query(
|
||||||
key=key, fname=fname, lname=lname, email=email)
|
'INSERT INTO persons (key, fname, lname, email) VALUES (:key, :fname, :lname, :email)',
|
||||||
|
key=key, fname=fname, lname=lname, email=email
|
||||||
|
)
|
||||||
|
|
||||||
|
# Retrieve and print the contents of the 'persons' table as CSV
|
||||||
rows = db.query('SELECT * FROM persons')
|
rows = db.query('SELECT * FROM persons')
|
||||||
print(rows.export('csv'))
|
print(rows.export('csv'))
|
||||||
|
|||||||
@@ -343,7 +343,6 @@ class Database(object):
|
|||||||
tx.commit()
|
tx.commit()
|
||||||
except:
|
except:
|
||||||
tx.rollback()
|
tx.rollback()
|
||||||
raise
|
|
||||||
finally:
|
finally:
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user