Задать вопрос
@jinjim

Ошибка в Flask: TypeError: b'' is not JSON serializable. Что не так?

При использовании расширения flask-wtf выдает ошибку:
TypeError: b'be3d65bc5d4d3c9de2c8fcea23a32750e83e5ba2' is not JSON serializable

Код максимально упростил:
start.py
from flask import render_template, Flask
from forms import LoginForm

app = Flask(__name__)
app.config['SECRET_KEY'] = 'you-will-never-guess'

@app.route('/')
def login():
    form = LoginForm()
#    return render_template('login.html', form=form)

if __name__ == '__main__':
	app.run(debug=True)


forms.py
from flask_wtf import FlaskForm

class LoginForm(FlaskForm):
    pass


Стек:
Traceback (most recent call last):
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/var/www/learn_flask/test/start.py", line 9, in login
form = LoginForm()
File "/var/www/learn_flask/one/lib/python3.5/site-packages/wtforms/form.py", line 212, in __call__
return type.__call__(cls, *args, **kwargs)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask_wtf/form.py", line 88, in __init__
super(FlaskForm, self).__init__(formdata=formdata, **kwargs)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/wtforms/form.py", line 278, in __init__
self.process(formdata, obj, data=data, **kwargs)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/wtforms/form.py", line 132, in process
field.process(formdata)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/wtforms/csrf/core.py", line 43, in process
self.current_token = self.csrf_impl.generate_csrf_token(self)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask_wtf/csrf.py", line 134, in generate_csrf_token
token_key=self.meta.csrf_field_name
File "/var/www/learn_flask/one/lib/python3.5/site-packages/flask_wtf/csrf.py", line 47, in generate_csrf
setattr(g, field_name, s.dumps(session[field_name]))
File "/var/www/learn_flask/one/lib/python3.5/site-packages/itsdangerous.py", line 565, in dumps
payload = want_bytes(self.dump_payload(obj))
File "/var/www/learn_flask/one/lib/python3.5/site-packages/itsdangerous.py", line 847, in dump_payload
json = super(URLSafeSerializerMixin, self).dump_payload(obj)
File "/var/www/learn_flask/one/lib/python3.5/site-packages/itsdangerous.py", line 550, in dump_payload
return want_bytes(self.serializer.dumps(obj))
File "/var/www/learn_flask/one/lib/python3.5/site-packages/itsdangerous.py", line 51, in dumps
return json.dumps(obj, separators=(',', ':'))
File "/usr/lib/python3.5/json/__init__.py", line 237, in dumps
**kw).encode(obj)
File "/usr/lib/python3.5/json/encoder.py", line 198, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.5/json/encoder.py", line 179, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: b'be3d65bc5d4d3c9de2c8fcea23a32750e83e5ba2' is not JSON serializable


Что я делаю не так?
  • Вопрос задан
  • 396 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
декодируй его в строку из бинарника
Ответ написан
Комментировать
json стерилизует словарь, но не строку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Goodt Екатеринбург
от 100 000 до 150 000 ₽
Selecty Москва
До 350 000 ₽
Data World Москва
от 180 000 до 210 000 ₽