#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, in
import 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
По опыту - в таких ситуациях обычно виновата кодировка БД…
Комментариев нет:
Отправить комментарий