UnicodeDecodeError, кодек 'utf-8' не может декодировать байт 0x80, несмотря на использование игнорирования в качестве обработчика ошибок при декодировании

Я запускаю redis_instance, который я только что промыл. Когда я запускаю keys *, чтобы проверить, какие значения ключей у меня есть, я получаю такой вывод

1) "pairprogramming:1:views.decorators.cache.cache_page..GET.3ab7bc76b513f7063fc20ab3fdb2d22b.d41d8cd98f00b204e9800998ecf8427e.en-us.UTC"
2) "pairprogramming:1:views.decorators.cache.cache_header..3ab7bc76b513f7063fc20ab3fdb2d22b.en-us.UTC"
3) "pairprogramming:1:views.decorators.cache.cache_page..GET.146382e9a37a1da80e630eb042e9e924.83bf0aec533965b875782854d37402b7.en-us.UTC"
4) "pairprogramming:1:views.decorators.cache.cache_header..146382e9a37a1da80e630eb042e9e924.en-us.UTC"
5) "pairprogramming:1:views.decorators.cache.cache_page..GET.21d502855d4ad5b0f631c20fc5e899c6.65330eb47d0175f264fdb29633829c0b.en-us.UTC"
6) "pairprogramming:1:views.decorators.cache.cache_header..21d502855d4ad5b0f631c20fc5e899c6.en-us.UTC"

Полагаю, что каждый раз, когда я пытаюсь сделать запрос GET, эта попытка записывается в мой redis_instance?

Это не суть важно, проблема в том, что когда я пытаюсь выполнить запрос GET, я ожидаю получить следующее:

{"count":0,"msg":"Found 0 items.","items":{}}

Однако, я получаю эту ошибку:

UnicodeDecodeError at /cache/
'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

Это нарушающая строка/символы

The string that could not be encoded/decoded was: ���

Я пытался изменить стандартный обработчик ошибок на: ignore, replace, backslash, но продолжаю получать ту же ошибку.

Вот как выглядит мой код в настоящее время:

@api_view(['GET', 'POST'])
def manage_items(request, *args, **kwargs):
    if request.method == 'GET':
        items = {}
        count = 0
        for key in redis_instance.keys("*"):
            items[key.decode("utf-8", errors='ignore')] = redis_instance.get(key)
            count += 1
        response = {
            'count': count,
            'msg': f"Found {count} items.",
            'items': items
        }
        return Response(response, status=200)
    elif request.method == 'POST':
        item = json.loads(request.body)
        keys = list(item.keys())
        values = list(item.values())
        for i in range(0, len(keys)):
            redis_instance.set(keys[i], values[i])
        response = {
            'msg': f"{keys} successfully set to {values}"
        }
        return Response(response, 201)

Я использую django-redis

В некоторых случаях я получаю ожидаемый результат при тестировании api_end point с помощью Postman, но продолжаю получать ту же ошибку при попытке GET данных с помощью axios в моем frontend

Вернуться на верх