Python 漏勺和檐口不';我不能正常工作

Python 漏勺和檐口不';我不能正常工作,python,pyramid,pylons,colander,cornice,Python,Pyramid,Pylons,Colander,Cornice,我尝试添加在官方檐口文档中描述的模式验证,并通过类似于service_name.post(schema=SomeSchemaClass)的decorator进行验证,但它不起作用 import colander class TrackSchema(colander.MappingSchema): genre = colander.SchemaNode(colander.String(), location="body", type='str') @track.post(schema

我尝试添加在官方檐口文档中描述的模式验证,并通过类似于service_name.post(schema=SomeSchemaClass)的decorator进行验证,但它不起作用

import colander


class TrackSchema(colander.MappingSchema):
    genre = colander.SchemaNode(colander.String(), location="body", type='str')

@track.post(schema=TrackSchema)
def create_track(request):
    ...
我得到了一个错误

"status": "error", "errors": [{"location": "body", "name": null, "description":      "Expecting value: line 1 column 2 (char 1)"}, {"location": "body", "name": "genre", "description": "genre is missing"}]}

我尝试了不同类型的location arg,比如querystring和headers,但我得到了相同的错误。

遇到了相同的错误,在深入研究之后,如果您查看
cornice.util.extract\u request\u data
函数,您将看到它试图将主体加载为json
json.loads(request.body)
,因此您需要将数据作为json发布:

curl -H "Content-Type: application/json" -X POST http://localhost:6543/foo -d '{"foo": "bar"}'