2016-11-16 2 views
1

오류를 해결하기 위해 귀하의 친절한 도움을 요청합니다. 파이썬을 사용하여 MS Access 데이터베이스 테이블을 CSV 파일로 저장하려고합니다. 나는 오류가 발생하는 것 같아 수정 방법을 모른다. 스택 오버플로에 대한 여러 게시물을 살펴본 결과, 아무 것도 성취하지 못했습니다. 친절한 도움을주십시오.'ascii'코덱이 문자 오류를 인코딩 할 수 없습니다.

import pyodbc 
import csv 

conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Access\\permissions.accdb") 

conn = pyodbc.connect(conn_string) 

cursor = conn.cursor() 

cursor.execute("select * from [Perm_Site Info];") 

with open('C:\\Desktop\\Python Files\\Perms_Site_Info.csv','wb') as csvfile: 
    writer = csv.writer(csvfile) 
    rest_array = [text.encode("utf8") for text in cursor] 
    writer.writerow(rest_array) 
    writer.writerow([i[0] for i in cursor.description]) 
    writer.writerows(cursor) 

cursor.close() 
conn.close() 

print 'All done for now' 

오류 : 당신은 아마 설치하고 unicodecsv 모듈을 사용한다

writer.writerows(cursor) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 4: ordinal not in range(128) 
+0

이와 같은 이전 질문을 검색 한 적이 있습니까? 파이썬 2.x 솔루션과 동일합니다. http://stackoverflow.com/q/40619675/4451406 –

+0

제안을 보여주기 위해 스 니펫을 편집했습니다. Irmen 링크에 대한 제안을 시도했지만 다른 메시지를 보냈습니다. rest_array = [커서의 텍스트에 대한 text.encode ("utf8")] AttributeError : 'pyodbc.Row'객체에 '인코딩'속성이 없습니다. –

+0

먼저 결과 행을 적절한 str 유형으로 변환하십시오. 당신은 행 결과 객체를 CSV –

답변