gpt4 book ai didi

python - 从json模式动态创建mongoengine类

转载 作者:行者123 更新时间:2023-12-03 16:18:42 26 4
gpt4 key购买 nike

我正在寻找一种采用json模式并在运行时动态创建mongoengine类的方法。

例如:
下面编写的mongoengine类

class user(Document):
_id = StringField(required=False) # mongodb id
name = StringField(required=True) # user name
email= StringField(required=False,regex="^[a-zA-Z0-9]*@mydomain.com$") # user email

将与此模式生成的在运行时动态生成的类相同
{
"type":"object",
"properties":{
"_id" : {"type":"string"},
"name" : {"type":"string"},
"email" : {"pattern":"^[a-zA-Z0-9]*@mydomain.com$"}
}
}

有什么建议么?

最佳答案

您可以动态创建python类,如下所示:

user_properties = { 
'_id': StringField(required=False), # mongodb id
'name': StringField(required=True), # user name
'email': StringField(required=False,regex="^[a-zA-Z0-9]*@mydomain.com$"), # user email
}
User = type("User", (Document, ), user_properties)
其余的仅是来自dict的转换器,其输入上提供了“您的模式”,该转换器将转换为dict user_properties
另外,这是 my answer,也可以解决类似的问题“ How to generate a model for a mongoengine Document from an already existing collection”。

关于python - 从json模式动态创建mongoengine类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33920062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com