错误:只能将str(而不是“int”)连接到str

2024-04-25 21:34:58 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,这是我目前收到的错误

> [2020-12-02 18:49:37,772] ERROR in app: Exception on /new-mealplan
> [POST] Traceback (most recent call last):   File
> "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py",
> line 2447, in wsgi_app
>     response = self.full_dispatch_request()   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py",
> line 1952, in full_dispatch_request
>     rv = self.handle_user_exception(e)   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask_cors\extension.py",
> line 165, in wrapped_function
>     return cors_after_request(app.make_response(f(*args, **kwargs)))   File
> "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py",
> line 1821, in handle_user_exception
>     reraise(exc_type, exc_value, tb)   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\_compat.py",
> line 39, in reraise
>     raise value   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py",
> line 1950, in full_dispatch_request
>     rv = self.dispatch_request()   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py",
> line 1936, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)   File "C:\Users\ryand\Desktop\mealplansfree\main-api\api.py", line 125, in
> create_mealplan
>     recipe_id_to_output = str(current_recipe['id'])   File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\sqlalchemy\orm\query.py",
> line 3208, in __getitem__
>     return list(self[item : item + 1])[0] TypeError: can only concatenate str (not "int") to str
> 127.0.0.1 - - [02/Dec/2020 18:49:37] "POST /new-mealplan HTTP/1.1" 500 -

在我的代码中,我在当前配方['id]周围添加了str(),因为环顾四周后,我读到了可以解决问题的内容。事实并非如此

这是我的密码:

@app.route('/new-mealplan', methods=['POST'])
def create_mealplan():

    data = request.get_json()
    recipes = data['mealplan_recipes']

    recipe_ids = []

    for recipe in recipes:
        current_recipe = Recipes.query.filter(func.lower(Recipes.recipe_name) == func.lower(recipe))
        if current_recipe:
            recipe_id_to_output = str(current_recipe['id']) # THIS IS THE LINE THE ERROR IS POINTS TOO
            recipe_ids.append(recipe_id_to_output)
    
    return jsonify({ 'Mealplan' : recipe_ids })

我所要做的就是使用我在POST请求中提交的配方名称,然后获取我提交的每个名称,并将配方的配方ID附加到配方ID中


Tags: inpyapiappmainlibpackagesline
2条回答

这个怎么样:recipe_id_to_output = "{}".format(current_recipe['id'])

恰恰相反,您应该在其周围添加int(...)

它试图将1添加到item中,但实际上它不能是字符串

编辑:不是这个,而是对库的错误使用。在查询之后忘记了.first()以实际检索结果

相关问题 更多 >