Создание SET строк в Redis, но возвращение целых чисел

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

'Fred', 'Emmanuel', 'Marcus Aurelius'

Если я верну весь SET, предполагая, что ключ для набора - 'newSet', выполнив эту команду:

SMEMBERS pairs 

Я должен увидеть список всех членов указанного состояния, вместо этого я получаю вот такой ответ:

 1) "32"
 2) "39"
 3) "44"
 4) "65"
 5) "69"
 6) "70"
 7) "77"
 8) "91"
 9) "93"
10) "97"
11) "99"
12) "100"
13) "101"
14) "105"
15) "108"
16) "109"
17) "110"
18) "114"
19) "115"
20) "117"

Вот код, который я использую для создания и добавления к указанному набору:

@api_view(['GET', 'POST'])
def manage_items(request, *args, **kwargs):
    if request.method == 'GET':
        items = []
        count = 0
        for elem in redis_instance.smembers("pairs"):
            items.append(elem.decode("utf-8"))
            count += 1
        response = {
            'count': count,
            'msg': f"Found {count} items.",
            'items': items
        }
        return Response(response, status=200)
    elif request.method == 'POST':
        new_users = request.body
        for i in range(0, len(new_users)):
            redis_instance.sadd('pairs', bytes(str(new_users[i]), "utf-8"))
        response = {
            'msg': f'set contains: {new_users}'
        }
        return Response(response, 201)

Есть идеи, что происходит?

Я не очень хорошо знаком с python, но вы уверены, что правильно выполнили работу с request.body? Поскольку я знаю, что вы должны были преобразовать request.body в str, а затем в массив и затем выполнить итерацию над ним. Но вы просто храните request.body, массив байтов, в переменной и выполняете итерацию по этому массиву, преобразуя каждый элемент в строку. Таким образом, вы сохраняете каждый элемент байтового массива request.body в Redis.

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