Я думаю, что ваша проблема связана с попыткой преобразовать эти данные в строку.
str(rdata)
Если эти данные содержат значения, которые не являются допустимыми UTF8, произойдет сбой. Вам необходимо закодировать эти данные таким образом, чтобы они могли быть отправлены в вашу базу данных. Может ли он принимать двоичные данные (BLOB-объекты)? Если это так, вы должны отправить ваши данные как есть, без преобразования их в строку.
Строки содержат только текст, поэтому попытка декодировать необработанный двоичный файл, как если бы это были строки, обычно приводит к ошибкам.