Ошибка колбы: «Не удалось декодировать объект JSON» из-за непредвиденного типа - PullRequest
0 голосов
/ 25 октября 2018

Мне нужно иметь возможность отображать мое сообщение, когда я ввожу int, где строка для названия продукта и то же самое для целых в цене и количестве.Когда я запускаю свой код, я получаю эту ошибку:

"message": "Failed to decode JSON object: Expecting value: line 3

Как мне убедиться, что при неожиданном вводе int мой код не выдает эту ошибку?

Вот мой код:

Код из представлений

from flask_restplus import Resource, reqparse, Namespace, fields
from .models import Products
product = Products()

create_product = product_api.model("Create product", {"product_name": fields.String, "quantity": fields.Integer,
                                                      "product_price": fields.Integer})
@product_api.expect(create_product)
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument("product_name", help="product name should be provided", required=True,
                            location=["json"])

        parser.add_argument("quantity", help="quantity should be provided", required=True,
                            location=["json"])

        parser.add_argument("product_price", help="price should be provided", required=True,
                            location=["json"])
        arguments = parser.parse_args()

        if arguments["product_name"] == int:
            return {"txt": "please enter a string"}

        response = product.create_product(product_name=arguments["product_name"], quantity=arguments["quantity"],
                                          product_price=arguments["product_price"])

        return response, 201

Код из моделей

from werkzeug.security import generate_password_hash, check_password_hash


class Products:
    """Functionality of products"""

    products = {}


    def create_product(self, product_name, quantity, product_price):
        if product_name == "":
            return {"txt": "product name must be provided"}
        if product_price == "":
            return {"txt": "price value must be provided"}
        new_id = len(self.products) + 1
        self.products[new_id] = {"product_name": product_name, "quantity": quantity,
                                 "product_price": product_price, }
        res = self.products[new_id]
        return {"msg": "Product added successfully", "data": res}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...