Sqlalchemy чтение запроса из файла в Windows - PullRequest
0 голосов
/ 07 марта 2019

Я хочу прочитать таблицу из сценария запроса на моем компьютере.
Я обнаружил, что команда проста:

with open(sql_file, 'r') as opened:
  query = alq.text(opened.read())

Первая проблема связана с кодировкой:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 
in position 7963: character maps to <undefined>

Итак, мы делаем то, что делаем, ищем ответ, чтобы добавить аргумент в команду open(sql_file, encoding='utf8') и выполняем запрос.

engine.execute(query)

А теперь ошибка более хитрая:

ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] 
[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]
Incorrect syntax near '\ufeff'. (102) (SQLExecDirectW)") 
[SQL: "\ufeffWITH\n-- Some comment about the query\nQC_SCORE AS 
(\n  SELECT some_table.id\n  , other_table.column\n 

То есть неправильно читается файл.После проверки я обнаружил, что в начале файла есть \ufeff и что разрывы строк \n не переводятся.

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 07 марта 2019

У меня была похожая проблема при попытке проанализировать XML-файл, содержащий специальные символы Юникода.То, что я нашел в качестве жизнеспособного обходного пути, - это просто чтение файла в виде строки с последующим использованием метода string.replace ().Что-то вроде этого:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...