Ошибка при возврате flask json / код состояния конечной точки - PullRequest
0 голосов
/ 18 июня 2020
• 1000

Когда car_id не найден, res равно None и ожидается возврат 400, но возвращает 500 со следующей ошибкой:

  File "\Lib\site-packages\werkzeug\datastructures.py", line 1091, in extend
    for key, value in iterable:
ValueError: too many values to unpack (expected 2)

Есть идеи, почему? Это та же структура json + код состояния.

Ответы [ 2 ]

1 голос
/ 18 июня 2020
In [5]: def test(): 
   ...:     return 1,2 if False else 3,4 

In [6]: test()                                                                  
Out[6]: (1, 3, 4)

In [7]: def test(): 
   ...:     return (1,2) if False else (3,4) 
In [8]: test()                                                                  
Out[8]: (3, 4)

поэтому измените свой код следующим образом

class CarbyID(Resource):
    def get(self, car_id):
        json_return = {'car_id': car_id}
        try:
            res = db_query.read(car_id) #gets the data from the databse
            json_return['data'] = res
            return (json_return, 200) if res else (json_return, 400)
        except:
            return json_return,505

0 голосов
/ 18 июня 2020

Хорошо, итак:

def hola():
    condition = True
    return 'True',"A" if condition else 'False','B'

Возвращает 'True', 'A', 'B'.

Я ожидал вернуть 'True', 'A'.

Правильным будет

def hola():
    condition = True
    return ('True',"A") if condition else ('False','B')
...