Использование списка в качестве типа данных в столбце (SQLAlchemy)

Я хочу сохранить список rss-каналов в sqlite db. Я использую SQLAlchemy и задавался вопросом, как их хранить. Кажется, я не могу найти документацию о списках и задавался вопросом, было ли это законно для столбца:   Столбец ('rss_feed_urls', List)

Или есть тип массива, который я мог бы использовать?

Ответ 1

Если вы действительно должны использовать PickleType. Но, возможно, вам нужна другая таблица (которая состоит из списка строк, правильно?). Просто создайте таблицу для хранения ваших RSS-каналов:

class RssFeed(Base):
    __tablename__ = 'rssfeeds'
    id = Column(Integer, primary_key=True)
    url = Column(String)

Добавить новые URL:

feed = RssFeed(url='http://url/for/feed')
session.add(feed)

Получить список URL-адресов:

session.query(RssFeed).all()

Найдите определенный поток по индексу:

session.query(RssFeed).get(1)

Я бы рекомендовал SQLAlchemy Object Relational Tutorial.

Ответ 2

Как правило, нет списка среди типов данных столбцов базы данных SQL.

Одним из способов хранения списка в качестве значения столбца является преобразование этого списка в строку, которая будет сопоставляться с типом данных базы данных varchar.

Другой способ - преобразовать список в сериализованное двоичное представление (например, используя pickle) и сохранить значение как значение базы данных типа blob.