Ваша текущая проблема заключается в том, что вы используете list.insert
метод, который не имеет ничего общего с SQLAlchemy .
Если вам нужно правильно вставить объекты в базу данныхиспользуя SQLAlchemy , вы можете открыть базу данных Session
, создать EmployeeData
экземпляры, добавить их в сеанс и зафиксировать изменения.
Для этого мы можем определить EmployeeData
инициализатор следующим образом
class EmployeeData(Base):
__tablename__ = 'employee_data'
id = Column(Integer, primary_key=True)
name = Column(String(120))
department = Column(String(120))
jobTitle = Column(String(120))
email = Column(String(120))
def __init__(self, name, department, jobTitle, email):
self.name = name
self.department = department
self.jobTitle = jobTitle
self.email = email
Открыть Session
from sqlalchemy.orm import Session, sessionmaker
...
session_factory = sessionmaker(engine)
session = session_factory()
Создать EmployeeData
экземпляров
employees_list = [EmployeeData(name=item['displayName'],
department=item['department'],
jobTitle=item['jobTitle'],
email=item['workEmail'])
for item in employees]
Добавить EmployeeData
экземпляров и зафиксировать изменения
session.add_all(employees_list)
session.commit()
Тест
Поскольку у меня нет доступа к услуге Bamboo
, я буду имитировать ответ
employees = [{'displayName': 'John Doe',
'department': 'IT',
'jobTitle': 'Python Developer',
'workEmail': 'jdoe@company.com'}]
Следуя приведенным выше шагам, я получил employee_db.db
* 1039База данных * SQLite в моем рабочем каталоге.Давайте откроем его, используя SQLite CLI (из SQLite tools )
sqlite> .open employee_db.db
sqlite> select * from employee_data;
1|John Doe|IT|Python Developer|jdoe@company.com
Дополнительные сведения