SQLAlchemy вывод из таблицы без Primary key

Есть таблица(table1) по структуре похожа на следующию.

number      language        desc
3333        RU              some desc
3333        UK              some desc
3333        EN              some desc   
4444        EN              some desc   
4444        UK              some desc
5555        RU              some desc

Пытаюсь вытянуть данные с помощью SQLAlchemy.

from sqlalchemy import create_engine
import sqlalchemy_teradata
from sqlalchemy.ext.declarative import declarative_base, DeferredReflection
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy import Column, Integer, String, Text, DateTime, Float, Boolean, PickleType
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('teradata://'+uid+':'+password+'@'+host+'/'+db+'?driver='+driver, encoding='utf8', convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))
db_session.execute('SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;')  # To avoid locking tables when doing select on tables
db_session.commit()

Base = declarative_base(cls=DeferredReflection)
Base.query = db_session.query_property()


class TestModel(Base):
    """Data model example."""
    __tablename__ = "table1"
    __table_args__ = {"schema": "exmple"}
    
    
    number = Column(Integer, primary_key=True, unique=False ,nullable=False)
    language = Column(String(3), nullable=False)
    desc = Column(String(3000), nullable=False)

    def __repr__(self):
        return '<Example model {}>'.format(self.number)


def join_example():
    records = db_session.query(TestModel).filter(TestModel.number == 3333).all()
    for record in records:
        recordObject = {'subsys': round(record.number),
                        'lang': record.language,
                        'description': record.desc}
        print(recordObject)

join_example()

В результате я получаю только одному сроку, у которой поле number = 3333.

3333        RU              some desc

однако их в таблице 3 и мне нужно вывести все 3 записи в json.

Предпологаю, что это из-за строки

number = Column(Integer, primary_key=True, unique=False ,nullable=False)

Как в случае, если нет в таблице primary key указать его корректно. Что бы была выборка из 3х записей а не одной. Или где допущена ошибка, из-за которой только одна запись. UPD так же результирующий набор не в UTF8. хотя указал в create_engine


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