Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy JSON列自定义属性_Python_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy JSON列自定义属性

Python SQLAlchemy JSON列自定义属性,python,sqlalchemy,Python,Sqlalchemy,在SQLAlchemy中,JSON列可以包含任意数据结构。为了更容易地访问该列的某些深层元素,我想在该列上创建自定义属性。一个简单的例子可以是如下列: 类模型(db.Model): language=db.Column(postgresql.JSON(),null=False, 默认值={“nl”:“en”:“}) 然后我想在language属性上有一个属性,这样我们可以键入entity.language.en和entity.language.nl。我已尝试创建自定义列类型: 类Transla

在SQLAlchemy中,JSON列可以包含任意数据结构。为了更容易地访问该列的某些深层元素,我想在该列上创建自定义属性。一个简单的例子可以是如下列:

类模型(db.Model):
language=db.Column(postgresql.JSON(),null=False,
默认值={“nl”:“en”:“})
然后我想在
language
属性上有一个属性,这样我们可以键入
entity.language.en
entity.language.nl
。我已尝试创建自定义列类型:

类TranslatedColumn(db.Column):
定义初始化(self,*args,**kwargs):
super(),
默认值={“nl”:“en”:“})
@杂化性
def en(自我):
返回自我[“en”]。astext
@杂化性
def nl(自我):
返回自我[“nl”]。astext
它在查询列时起作用:
db.session.query(Model.filter)(Model.language.en==“somestr”)…
,但是当我尝试访问实体上的列时,
entity.language=={“nl”:“en”:“}
,这是一个
dict


有什么方法可以基于SQLAlchemy的JSON列创建这样的结构吗?

使用来自SQLAlchemy的
导入JSON
,而不是
postgresql.JSON()

我想您可能会使用
类型装饰器