venom99
@venom99

Почему объект не переводится в строку в формате json?

Столкнулся с такой проблемой, что когда я с клиентской части (React-native) отправляю запрос через axios и он приходит на back (Flask) я не могу перевести объект в json.

Клиентская часть:
import axios from 'axios'


let data = {email: 'aaaaa', password:'bbbbb',};

	const login = () => {axios.get('http://127.0.0.1:5000/login',data) } 

<View>
			<Button onPress={login} title='Войти' />
</View>


Бэк:
from flask import Flask, Request, jsonify
from flask_cors import CORS
import json


backend = Flask(__name__)
cors = CORS(backend, resources={r"/*": {"origins": "*"}})


@backend.route('/login')
def get_login():
    newResponse = Request.json
    stringify = json.dumps(newResponse)
    print(stringify)
    return #возвращает информацию из БД убрал из кода всё кроме момента где есть ошибка


В логах бэка выводится следующее:

[2022-07-12 03:51:04,834] ERROR in app: Exception on /login [GET]
Traceback (most recent call last):
File "C:\python\lib\site-packages\flask\app.py", line 2077, in wsgi_app
response = self.full_dispatch_request()
File "C:\python\lib\site-packages\flask\app.py", line 1525, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\python\lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "C:\python\lib\site-packages\flask\app.py", line 1523, in full_dispatch_request
rv = self.dispatch_request()
File "C:\python\lib\site-packages\flask\app.py", line 1509, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "c:/praktika/backend.py", line 20, in get_login
stringify = json.dumps(newResponse)
File "C:\python\lib\json\__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "C:\python\lib\json\encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\python\lib\json\encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "C:\python\lib\json\encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type property is not JSON serializable

Понимаю что проблема может быть глупого формата) но никак не могу разобраться как это исправить, в прошлом году работал с фреймворком Vue.js по такому же принципу и всё работало, сейчас нет. Заранее благодарю за помощь.
  • Вопрос задан
  • 257 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
axios.get вторым параметром ожидает объект с конфигом, а не данные.
axios.get(url[, config])
https://axios-http.com/docs/api_intro
Ответ написан
Тут просто реквест тебе другой нужен
from flask import request

@backend.route('/login')
def get_login():
    my_body = request.json
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы