Как заполнить таблицу при помощи 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


Ответы (0 шт):