Как заполнить таблицу при помощи classical mappings?
Я пытаюсь сделать запись нескольких объектов в таблицу. Для этого я использую classical mappings
import random
from sqlalchemy import create_engine, Table, MetaData, select, Column, String, Integer
from sqlalchemy.sql import and_, or_, not_
from sqlalchemy.orm import sessionmaker, mapper
engine = create_engine('sqlite:///db.sqlite3')
connection = engine.connect()
metadata = MetaData()
Session = sessionmaker(bind = engine)
session = Session()
quotes = Table('quotes', metadata,
Column('id', Integer, primary_key=True),
Column('text', String, nullable=False),
Column('weight', Integer, nullable=False)
)
class Quotes(object):
pass
mapper(Quotes, quotes)
quotes_json = []
with open("text.txt") as file_handler:
for line in file_handler:
quotes_json.append(
quotes(text=line, weight=random.randint(1, 10))
)
session.add_all(quotes_json)
session.commit()
Проблема в том, что в результате выполнения скрипта я получаю сообщение об ошибке:
Traceback (most recent call last):
File "index.py", line 30, in <module>
quotes(text=line, weight=random.randint(1, 10))
TypeError: 'Table' object is not callable
При этом файл db.sqlite3 создаётся. Но sqlite-клиент показывает, что таблица пуста. То есть в неё не записалось ни одной строки.
Помогите пожалуйста записать строки в таблицу, обязательно используя classical mappings