UTF-8无法通过0xf3 - SQL / Access / Python进行解码

问题描述 投票:0回答:1

我从python开始。我正在尝试创建一个简单的代码来打开Access数据库并通过SQL查询检索一些信息。这是我的代码草稿:

import csv, pyodbc

# set up some constants
MDB = 'C:/Samuel/Python/Caso79151.mdb'; DRV = '{Microsoft Access Driver (*.mdb)}'; PWD = 'pw'

# connect to db
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
"""
con.setdecoding(pyodbc.SQL_CHAR, encoding='latin-1')
con.setdecoding(pyodbc.SQL_WCHAR, encoding='latin-1')
con.setencoding(encoding='latin-1')
"""
# run a query and get the results
SQL = 'SELECT * FROM TB_PER;'
rows = cur.execute(SQL).fetchall()
cur.close()
con.close()
# you could change the mode from 'w' to 'a' (append) for any subsequent queries
with open('mytable.csv', 'wb') as fou:
csv_writer = csv.writer(fou) # default field-delimiter is ","
csv_writer.writerows(rows)

当我执行模块时,Python不断显示消息:

回溯(最近一次调用最后一次):文件“C:\ Samuel \ Portable Python 3.2.5.1 \ App \ Scripts \ module1.py”,第18行,行= cur.execute(SQL).fetchall()UnicodeDecodeError:'utf -8'编解码器无法解码位置5中的字节0xf3:无效的连续字节

如您所见,我已经尝试管理错误,尝试不同的编码设置。我已经在这里看到了许多类似的问题,但是我的代码仍然没有运行,即使有不同的enconding。

当我尝试使用新的编码设置运行时,会出现以下消息:

回溯(最近一次调用最后一次):文件“C:\ Samuel \ Portable Python 3.2.5.1 \ App \ Scripts \ module1.py”,第9行,con.setdecoding(pyodbc.SQL_CHAR,encoding ='latin-1') AttributeError:'pyodbc.Connection'对象没有属性'setdecoding'

有人可以帮个忙吗?

谢谢

python sql utf-8
1个回答
0
投票

事实证明我的怀疑是正确的。我刚刚使用更新版本的pyodbc升级到Anaconda,代码运行没有错误。无论如何,谢谢你,因为你的评论让我想到了解决问题的不同观点。问候

© www.soinside.com 2019 - 2024. All rights reserved.