Ошибка TypeError: output must be a bytearray or a writeable memoryview?

Ошибка "TypeError: output must be a bytearray or a writeable memoryview" возникает, когда вы пытаетесь передать в функцию, которая ожидает в качестве аргумента output, объект, который не является bytearray или writeable memoryview.

Здесь важно понимать, что bytearray - это изменяемая последовательность байтов, которая может быть записана, а writeable memoryview - это объект, который предоставляет доступ к изменяемому буферу памяти. Чаще всего, такие ошибки происходят, когда вы пытаетесь передать в функцию объект, который является неизменяемым, например, строку (str) или кортеж (tuple).

Ниже приведены несколько примеров, в которых может возникнуть эта ошибка:

1. Попытка передать строку в качестве output:

output = "Hello, World!"
some_function(output)

В этом случае, вы должны преобразовать строку в bytearray, используя конструктор bytearray():

output = bytearray("Hello, World!", "utf-8")
some_function(output)

2. Попытка передать кортеж в качестве output:

output = (1, 2, 3)
some_function(output)

В этом случае, вы также должны преобразовать кортеж в bytearray или writeable memoryview:

output = bytearray(output)
some_function(output)

3. Попытка передать объект, который не может быть преобразован в bytearray или writeable memoryview:

output = 123
some_function(output)

В этом случае, вы должны преобразовать значение в строку и затем в bytearray или writeable memoryview:

output = bytearray(str(output), "utf-8")
some_function(output)

В зависимости от контекста, причины ошибки могут быть различными. Ошибка может возникать в вашем коде, если вы передаете неправильный тип параметра в функцию. Также ошибка может возникать в коде самой функции, если она неправильно проверяет тип входного параметра output.

Решение этой ошибки заключается в том, чтобы убедиться, что вы передаете в функцию правильные типы данных. Если вам необходимо использовать неизменяемые объекты, вы можете вместо этого использовать другие типы данных, например, str или bytes.