我想在sqlite數據庫中存儲RSS源url的列表。我正在使用SQLAlchemy並想知道如何存儲這些。我似乎無法找到關於列表的任何文檔,並且想知道這是否對於列是合法的: 列('rss_feed_urls',列表)在列中使用列表作爲數據類型(SQLAlchemy)
或者是否存在可以使用的數組類型?
我想在sqlite數據庫中存儲RSS源url的列表。我正在使用SQLAlchemy並想知道如何存儲這些。我似乎無法找到關於列表的任何文檔,並且想知道這是否對於列是合法的: 列('rss_feed_urls',列表)在列中使用列表作爲數據類型(SQLAlchemy)
或者是否存在可以使用的數組類型?
如果你真的必須使用PickleType。但你可能想要的是另一個表(它由列表行組成,對吧?)。只要創建一個表來保存你的RSS提要:
class RssFeed(Base):
__tablename__ = 'rssfeeds'
id = Column(Integer, primary_key=True)
url = Column(String)
添加新網址:
feed = RssFeed(url='http://url/for/feed')
session.add(feed)
檢索您的URL列表:
session.query(RssFeed).all()
通過索引查找特定的飼料:
session.query(RssFeed).get(1)
我推薦SQLAlchemy的Object Relational Tutorial。
SQL數據庫列數據類型之間通常沒有列表。
將列表存儲爲列值的一種方法是將該列表轉換爲字符串,該字符串將映射到數據庫數據類型varchar
。
另一種方法是將列表轉換爲序列化二進制表示(例如,使用pickle庫),並將該值存儲爲類型爲blob
的數據庫值。
Bleh我知道這並不容易。什麼是varchar類型? SQLAlchemy文檔沒有詳細說明。 – Chris
請參閱[sqlalchemy.types.LargeBinary](http://www.sqlalchemy.org/docs/core/types.html#sqlalchemy.types.LargeBinary)和[sqlalchemy.types.String](http://www.sqlalchemy .ORG /文檔/型芯/ types.html#sqlalchemy.types.String) –
如果您使用的是PostgreSQL,它具有數組類型,您可以將其用於此目的。 1 dim字符串數組實質上是一個字符串列表。 –