Как исправить эту проблему с возвратом JSON-флакса?Python

Программы на Python
Anonymous
Как исправить эту проблему с возвратом JSON-флакса?

Сообщение Anonymous »

Я создаю серверную часть, используя модуль Python flask. Мой файл Javascript извлекает файл Python, и в качестве ответа я хочу отправить обратно все списки в папке списка. Поскольку отправлять списки обратно нельзя, я попробовал сделать такую ​​конструкцию:

Код: Выделить всё

backsend_data = f"'count':'{len(name_value_list)}'"
list_count = 1
while list_count < len(name_value_list):
backsend_data = backsend_data + f"'name{list_count}':'{name_value_list[list_count]}','info{list_count}':'{info_value_list[list_count]}','class{list_count}':'{class_value_list[list_count]}'"
Все работает нормально, но при использовании f-строки возникает ошибка:

Код: Выделить всё

Traceback (most recent call last):
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 1498, in __call__
return self.wsgi_app(environ, start_response)
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 1476, in wsgi_app
response = self.handle_exception(e)
File "/home/kon/.local/lib/python3.10/site-packages/flask_cors/extension.py", line 178, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/kon/.local/lib/python3.10/site-packages/flask_cors/extension.py", line 178, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/home/kon/.local/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
File "/home/kon/Documents/Programming/Listed/src/backend/backend.pyw", line 69, in submit
return jsonify({backsend_data})
File "/home/kon/.local/lib/python3.10/site-packages/flask/json/__init__.py", line 170, in jsonify
return current_app.json.response(*args, **kwargs)  # type: ignore[return-value]
File "/home/kon/.local/lib/python3.10/site-packages/flask/json/provider.py", line 214, in response
f"{self.dumps(obj, **dump_args)}\n", mimetype=self.mimetype
File "/home/kon/.local/lib/python3.10/site-packages/flask/json/provider.py", line 179, in dumps
return json.dumps(obj, **kwargs)
File "/usr/lib/python3.10/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/usr/lib/python3.10/json/encoder.py", line 201, in encode
chunks = list(chunks)
File "/usr/lib/python3.10/json/encoder.py", line 438, in _iterencode
o = _default(o)
File "/home/kon/.local/lib/python3.10/site-packages/flask/json/provider.py", line 121, in _default
raise TypeError(f"Object of type {type(o).__name__} is not JSON serializable")
TypeError: Object of type set is not JSON serializable

Я ожидал, что он отправит json обратно в javascript, примерно так:

Код: Выделить всё

{'count':'2','name1':'example1','info1':'example1','class1':'example1','name2':'example2','info2':'example2','class2':'example2'}


Подробнее здесь: https://stackoverflow.com/questions/785 ... rn-problem

Вернуться в «Python»