我正在使用以下JSON:
{
"Select": {
"typ": "String",
"value": "select"
},
"Non-redundant Student ID": {
"typ": "String",
"value": "nonRedundantStudId"
},
"ID": {
"typ": "Integer",
"value": "id"
}
"Index": {
"typ": "Integer",
"value": "index"
}
}
我必须通过包含MongoModel
和typ
的JSON来制作value
类。 typ
和value
分别是MongoDB字段类型和字段名称。
我想像这样在JSON之上创建
:from pymodm import MongoModel, fields
class CollectionName(MongoModel):
select = fields.CharField(blank=False)
nonRedundantStudId = fields.CharField(blank=False)
id = fields.IntegerField(blank=False)
index = fields.IntegerField(blank=False)
如何动态地做到这一点?我的意思是,如何将JSON中的值用作MongoDB字段名称,将typ用作MongoDB字段类型?
我尝试了:
for key, val in json_obj.items():
print(val)
if val["typ"] == "String":
exec(val["value"] + "=" + fields.CharField(blank=False))
elif val["typ"] == "Integer":
exec(val["value"] + "=" + fields.IntegerField(blank=False))
但这给出了以下错误:
exec(val["value"] + "=" + fields.CharField(blank=False))
TypeError: must be str, not CharField