У меня следующий 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
сверху JSON, который содержит typ
и 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 и тип в качестве типа поля 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