Files
tellers-ORM/examples/create-a-db-from-csv/sql.py
2016-03-01 17:54:50 -05:00

52 lines
1.1 KiB
Python

from peewee import *
db = SqliteDatabase('employess.db')
db.connect()
# set up DB models
class Employee(Model):
name = CharField()
email = CharField()
country = CharField()
class Meta:
database = db
class Phone_number(Model):
user = ForeignKeyField(Employee, related_name='employee')
type = CharField()
number = CharField()
class Meta:
database = db
# parse CSV file
def parse_CSV():
file = open('employees.csv')
headers = file.readline().strip().split(',')
with db.atomic():
for line in file:
fields = line.strip().split(',', 5)
fields = dict(zip(headers, fields))
employee = Employee.create(
name=fields['name'],
email=fields['email'],
country=fields['country']
)
Phone_number.insert_many([
{'employee': employee, 'type': 'cellphone', 'number': fields['cellphone']},
{'employee': employee, 'type': 'homephone', 'number': fields['homephone']},
{'employee': employee, 'type': 'workphone', 'number': fields['workphone']},
])
if __name__ == '__main__':
# create tables if they dont exist
db.create_tables([Employee, Phone_number], True)
parse_CSV()