json.dump在wtf表单验证错误上抛出“TypeError:{...}不是JSON可序列化”

时间:2016-06-14 23:46:23

标签: python json flask

我想在烧瓶中通过Ajax post请求处理wtf表单。

form = LoginForm(request.form)  
if form.validate(): 
   ..... 
   .... do something
   .....
form.errors['iserror'] = True
return json.dumps(form.errors) 

但是我收到了这个错误

文件“/usr/lib/python3.4/json/encoder.py”,第173行,默认提升
TypeError(repr(o)+“不是JSON可序列化的”) TypeError:l'需要用户名或电子邮件地址。'不是JSON可序列化的

在使用json.dumps之前,是否需要对form.errors进行一些处理?

form.error的输出
{'iserror':是的,'密码':[需要密码。'],'csrf_token':['CSRF令牌丢失'],'用户名':[l'用户名或电子邮件地址是必需的']}

1 个答案:

答案 0 :(得分:0)

问题是我的验证信息。不知道为什么我在消息之前有_并导致了这个问题。

password = PasswordField(_("Password"), validators=[
          DataRequired(message=_("A Password is required."))])

将表单验证更改为

后工作正常
password = PasswordField(("Password"), validators=[
          DataRequired(message=("A Password is required."))])