我在Flask应用程序中包含在请求中使用JSON的代码,并且可以像这样获取JSON对象:
Request = request.get_json()
一切正常,但是我试图使用Python的unittest模块创建单元测试,并且很难找到一种发送带有请求的JSON的方法。
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
这给了我:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
Flask似乎有一个JSON参数,您可以在其中发布请求中设置json = dict(foo ='bar'),但我不知道如何使用unittest模块来做到这一点。
>>> request.get_data()'{“ foo”:“ bar”}'>>> request.get_json()无我不太确定flask的请求如何工作,但是它似乎将数据和json分开了,我如果有意义的话,就无法弄清楚如何将信息发送到json而不是数据。
—
Sepehr Nazari'3
我认为这是内容类型标头,请尝试将其设置为appliacation / json。力参数也很有用,但是您可能不想去那里只是为了使单元测试通过,最好更改mime
—
user3012759 2015年
request.data
包含?通常,当json解析由于输入错误而失败时,它会静默失败并返回,None
因此原始输入数据可能不是json。