Уведомления

Группа в Telegram: @pythonsu

#1 Март 27, 2015 14:07:33

Astronaut
От: Earth
Зарегистрирован: 2014-12-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy внесение данных при помощи цикла ?

Доброго времени суток.
Возник вопрос, о том как добавить в БД, при помощи алхимии данные из списка(словаря).
Моя попытка сделать это при помощи цикла for приводит к ошибке TypeError: ‘bool’ object is not iterable
Собственно код:

...
class University(Base):
    __tablename__ = 'univer'
    id = Column(Integer, primary_key=True, autoincrement=False)
    title = Column(Unicode)
    def __init__(self, id, title):
    	self.id = id
    	self.title = title
# имеются 2 списка universities_id и universities_title
# вариант №1
univers=dict(zip(universities_id, universities_title)) # делаю словарь из списков
for id,title in (univers.items()):
   session.add(University(id, title))
   session.commit()
после чего получаю: TypeError: ‘bool’ object is not iterable, а если вместо session.add написать print(id+' : '+title), то нормально распечатает содержимое на экран.
ЧЯДНТ?
Заранне благодарю, товарищи.

Офлайн

#2 Март 27, 2015 14:12:14

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

SQLAlchemy внесение данных при помощи цикла ?

Зачем так над базой издеваться. Для этого есть метод add_all. Он получает последовательность объектов (список или набор) и их обрабатывает. Т.е. просто создаете список из объектов и передаете этому методу.

P.S. Мог бы написать в скайп…

Офлайн

#3 Март 27, 2015 14:58:41

Astronaut
От: Earth
Зарегистрирован: 2014-12-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy внесение данных при помощи цикла ?

4kpt_III
Зачем так над базой издеваться. Для этого есть метод add_all. Он получает последовательность объектов (список или набор) и их обрабатывает. Т.е. просто создаете список из объектов и передаете этому методу.P.S. Мог бы написать в скайп…
Все оказалось плачевнее, чем было на самом деле: в классе, была строчка с relationship, в которой я опять допустил одну и ту же ошибку - backref = True, вместо названия таблицы. Оттого и получал такую ошибку.
ПС: Сейчас с машины пишу, на которой его нет

Отредактировано Astronaut (Март 27, 2015 14:58:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version