Есть файл main.py в UTF-8. В нем запрос который выполняется в БД (которая тоже ВСЯ URF-8). Запрос возвращает от 0 до Н строк, в них присутсвуют числовые и строковые типы данных, а также тип дата-время.
Я Пытаюсь записать все это в файл, но вылазит ошибка:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 60: ordinal
not in range(128)
Кусок кода:
import string
import MySQLdb
from Cheetah.Template import Template
sqlQuery = """
...
"""
def connect_db():
db = MySQLdb.connect("host", "root", "passwd")
return db
def main():
f = open("result.txt", "w")
db = connect_db()
cur = db.cursor()
db.set_character_set('utf8')
cur.execute('SET NAMES utf8;')
cur.execute('SET CHARACTER SET utf8;')
cur.execute('SET character_set_connection=utf8;')
cur.execute(sqlQuery)
i = 0;
for row in cur.fetchall():
/* здесь заполняется nameSpace для Cheetah */
/* Здесь с помощью Cheetah заменяется куча значений в тексте. Ошибока здесь и валазит. */
t = Template(templateDef, searchList=[nameSpace])
f.write(t.__str__())
f.close()
if __name__ == "__main__":
main()