По умолчанию и Python, и ваш драйвер ODB C проверяют ваши языковые настройки в Linux, чтобы определить кодировку по умолчанию.
Сначала установите ваши языковые настройки следующим образом:
export LC_ALL=C.UTF-8
Во-вторых, вместо использования строковых литералов в запросах SQL, используйте параметры:
Например, измените
c.execute("INSERT INTO table (data) VALUES ('non-ascii stuff')"
на
c.execute("INSERT INTO table (data) VALUES (?)", ['non-ascii stuff'])