#python #access #база_данных #запрос #sql
Написал следующий код conAcc = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\ThirdTask\Northwind.accdb') SqlAccess=conAcc.cursor(); SqlAccess.execute(sql.sql_count_record_clients); CountOfRecords=SqlAccess.fetchone(); conAcc.close(); где в модуле sql.py есть строка sql_count_records_clients='''SELECT COUNT(*) FROM "Список клиентов"''' В результате на эту строку в sql.py выдает ошибку Traceback (most recent call last): File "D:\ThirdTask\connect.py", line 5, inimport json,sqlite3,sql File "D:\ThirdTask\sql.py", line 48 SyntaxError: Non-ASCII character '\xd1' in file D:\ThirdTask\sql.py on line 48, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Что необходимо слелать, чтоб ошибка исчезла?
Ответы
Ответ 1
Python 2.x по умолчанию читает исходники как ascii, и если видит октеты больше 127, то кричит вот этим самым SyntaxError. Чтобы указать Python в какой кодировке записан файл, нужно в начало файла добавить специальный комментарий, подходящий под регэксп «coding[:=]\s*([-\w.]+)», как правило — одного из следующих видов: # coding=<кодировка> # -*- coding: <кодировка> -*- # vim: set fileencoding=<кодировка> : Где <кодировка> — собственно, кодировка, например, «utf-8» или «cp1251». Подробно это описано в PEP 263.Ответ 2
По опыту - в таких ситуациях обычно виновата кодировка БД…
Комментариев нет:
Отправить комментарий