【问题标题】:Creating an array column within my model definition在我的模型定义中创建一个数组列
【发布时间】:2013-10-26 06:58:44
【问题描述】:

我想在我的 SQLAlchemy Pyramid 应用程序中创建一个存储多维值数组的表。我正在使用 PostgreSQL,我知道它有一个数组类型。我只是不太确定如何在我的models.py 中定义表格。可能是这样的:

class MyTable:
    __tablename__ = 'mytable'
    id = Column(Integer, primary_key=True)
    text_array = Column([Unicode])

    def __init__(self, text_array):
        self.text_array = text_array

【问题讨论】:

  • 如果是可变长度和深度的,首选json。序列化和反序列化会更直接。还有一个 json 类型在 9.3 中很有用。

标签: python postgresql sqlalchemy pyramid


【解决方案1】:

根据to the SQLAlchemy docs,您使用特定方言的ARRAY 类型。修改您的示例会导致:

from sqlalchemy.dialects.postgresql import ARRAY

class MyTable:
    __tablename__ = 'mytable'

    id = Column(Integer, primary_key=True)
    text_array = Column(ARRAY(Unicode))

    def __init__(self, text_array):
        self.text_array = text_array

查看多维数组的文档(只需将“dimensions”关键字参数添加到 ARRAY 构造函数)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    相关资源
    最近更新 更多