52 lines
1.1 KiB
Python
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()
|