KeyError : Но ключ существует и получен хороший результат

У меня есть API, который анализирует элементы, содержащиеся в url изображения, и возвращает мне словарь, все в порядке, пока я не пытаюсь подсчитать, сколько раз встречается пара ключ-значение! Проблема в том, что Python говорит мне, что есть KeyError на ключе, который существует, и более того, я получаю результат, который я хочу... Чтобы объяснить, первый цикл for здесь для доступа к первой дикте, а затем я использую Counter для группировки значений, содержащихся в ключе 'labelName' по их ключу. Я изучаю Python только для того, чтобы сказать.

@api_view(['GET'])
def send_image_to_url(request, encoded_url):
    analyzed_image = analyze_url(encoded_url)

    for response in analyzed_image.values():
        aggregated_items = Counter(item["labelName"] for item in response)

    return Response(aggregated_items)

Вот анализируемое_изображение :

{
    "response": [
        {
            "labelId": 8722,
            "labelName": "Sofa",
            "score": 0.99225813
        },
        {
            "labelId": 8732,
            "labelName": "Low Table",
            "score": 0.9896868
        },
        {
            "labelId": 8729,
            "labelName": "Carpet",
            "score": 0.98912084
        },
        {
            "labelId": 8717,
            "labelName": "Cushion",
            "score": 0.9777501
        },
        {
            "labelId": 8717,
            "labelName": "Cushion",
            "score": 0.97317785
        },
        {
            "labelId": 8714,
            "labelName": "Chair-Armchair",
            "score": 0.9629707
        },
        {
            "labelId": 8717,
            "labelName": "Cushion",
            "score": 0.91856897
        },
        {
            "labelId": 8722,
            "labelName": "Sofa",
            "score": 0.88815445
        },
        {
            "labelId": 8717,
            "labelName": "Cushion",
            "score": 0.6156193
        },
        {
            "labelId": 8713,
            "labelName": "Curtain",
            "score": 0.5715783
        },
        {
            "labelId": 8713,
            "labelName": "Curtain",
            "score": 0.54747367
        },
        {
            "labelId": 8717,
            "labelName": "Cushion",
            "score": 0.4857846
        },
        {
            "labelId": 8713,
            "labelName": "Curtain",
            "score": 0.39435804
        }
    ]
}

Вот aggregated_items (который является правильным для того, что я хочу сделать) :

{
    "Sofa": 2,
    "Low Table": 1,
    "Carpet": 1,
    "Cushion": 5,
    "Chair-Armchair": 1,
    "Curtain": 3
}

Вот код ошибки :

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/decorators.py", line 50, in handler
    return func(*args, **kwargs)
  File "/app/challenge/api/views.py", line 24, in send_image_to_url
    aggregated_items = Counter(k["labelName"] for k in list)
  File "/usr/lib/python3.6/collections/__init__.py", line 535, in __init__
    self.update(*args, **kwds)
  File "/usr/lib/python3.6/collections/__init__.py", line 622, in update
    _count_elements(self, iterable)
  File "/app/challenge/api/views.py", line 24, in <genexpr>
    aggregated_items = Counter(item["labelName"] for item in response)
KeyError: 'labelName'
Вернуться на верх