1
我尝试使用mongoengine将一个JSON请求保存到MongoDB中的DynamicDocument时出现问题。无法在DynamicEmbeddedDocument中保存复杂的JSON结构(Mongoengine,Flask)
这里是我的文档:
class documentSource(DynamicEmbeddedDocument):
name = StringField()
class documentParent(Document):
name = StringField(max_length=120)
source = ListField(EmbeddedDocumentField('documentSource'))
这是我的信息发布对象:
{
"name": "Test",
"source": [{
"name": "my first source"
"metadata": {
"name": "testing",
"products": [
{"name":"my product", "price":123}
]
}
},{
"name": "my second source"
"metadata": {
"name": "Test",
"profile": "foo"
}
}
]
}
这里是我的瓶POST方法:
def post(self):
myObj = documentParent(
name=self.data['name'],
description=self.data['description'],
)
sourceList = []
for i in self.data['source']:
content = documentSource(**i)
sourceList.append(content)
myObj.source = sourceList
myObj.save()
但问题是:
如果我发送此JSON不起作用:
{
"name": "Test",
"source": [{
"name": "my first source"
"metadata": {
"name": "testing",
"products": [
{"name":"my product", "price":123}
]
}
},{
"name": "my second source"
"metadata": {
"name": "Test",
"profile": "foo",
"foo" : {
"foo1": "var1"
}
}
}
]
}
但与此对象的工作原理:
{
"name": "Test",
"source": [{
"name": "my first source"
"metadata": {
"name": "testing",
"products": [
"my product"
]
}
},{
"name": "my second source"
"metadata": {
"name": "Test",
"profile": "foo"
}
}
]
}
同样的问题列表名单:
"image":
{"available_sizes":
[[[150,
19],
"assets/images/150x150.png"],
[[250,
31],
"assets/images/250x250.png"],
[[450,
57],
"assets/images/450x450.png"]]
我觉得复杂的JSON”结构mongoengine的解析器不起作用。我不知道如何解决这个问题,因为我无法控制源信息,大图是从一个源(例如:网站爬虫)获取JSON对象,并将它保存到我的DynamicDocument中。
非常感谢您的帮助。
没有遗憾,这是复制和粘贴到这个问题的错误,其实我用邮递员提出要求,邮递员有验证员。 –
答案是正确的。你的JSON无效。接受它并发布一个不同的问题... –