SQLAlchemy社区,一个数据库中的noob,特别是SQLAlchemy正在这里寻求您的帮助。正如人们所期望的,我的数据库由行和列组成。每一行都是关于一个独特的人的信息。每个人都有多个列(出生日期、姓名、姓氏、以前的登录日期等)。对于其中一个列(以前的登录日期),我希望在单个单元格中存储多个值。换句话说,我希望能够存储最后一个(比如说十个)登录日期,并能够像处理python中的列表一样处理这些日期。我希望能够将新的登录日期添加到此单元格,从单元格中删除项目,并访问单元格的特定索引。基本上我的手机会像这样
{"04042020","04052020","04072020"}
我的数据库是这样的
Name | Last Name | Last Log in dates
------------------------------------------------------------
Edgar | Allen | {"04042020","04052020","04072020"}
Dimitri | Albertini | {"12042019","10112019","01072020"}
我知道sqlalchemy有一种将数组与
from sqlalchemy.dialects.postgresql import ARRAY
经过一些努力,我仅仅能够创建一个数组,我无法找到一种方法来操作(附加、删除、访问)数组。下面是一个简单的原型,它创建一个只有一列的表,第一行中的元素等于{1,2,3}
from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.dialects.postgresql import ARRAY
engine = create_engine('postgresql://rouzbeh:tiger@localhost/newtable')
metadata = MetaData()
newtable = Table("newtable", metadata,
Column("data", ARRAY(Integer))
)
metadata.create_all(engine)
connection = engine.connect()
connection.execute(newtable.insert(),data=[1,2,3])
Postgress Postco中的输出如下图所示。再次重申,我希望能够访问元素({1,2,3}
),并通过移除或添加元素来操作它们。({1,2,3,4}
)或({1,2}
)
对于类似的用例,我将这些数据存储为JSON。签出this SO post。其思想是将JSON转储为文本(或者JSON对象,如果您的数据库支持的话)
对于更复杂的结构,我使用Marshmallow。它对于嵌套结构特别有用
然而,这种方法是有争议的。见this SO post和in this Quora discussion。如果你能忍受不利因素,这是一种存储数据的简单方法
相关问题 更多 >
编程相关推荐