2016-11-16 171 views
1

MS AccessテーブルをPythonを使用してCSVファイルとして保存しています。 MS Accessデータベースには、「Perm_Site Info」という名前のテーブルがあります。 MS Accessの名前にスペースがあります。以下のスニペットを実行すると、コードが爆発します。私はcursor.executeでは一重引用符と二重引用符を使用しようとしましたが、結実はありませんでした。私はこの問題を解決する方法を理解するためにあなたの親切な援助を要請します。"入力テーブルまたはクエリが見つかりません" SELECTステートメントのエラー

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) 
    writer.writerow([i[0] for i in cursor.description]) 
    writer.writerows(cursor) 

cursor.close() 
conn.close() 

print 'All done for now' 

エラー:

cursor.execute("select * from Perm_Site Info;") 
ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Access database engine cannot find the input table or query 'Perm_Site'. Make sure it exists and that its name is spelled correctly. (-1305) (SQLExecDirectW)") 

答えて

2

は、テーブル全体名の前後にブラケットを使用してみてください。それは宇宙と何をするのか分からないので吠えている。

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

+0

おかげX0R、私はあなたの提案を試してみましたが、今ではwriter.writerows(カーソル)を示すエラーをスローし UnicodeEncodeErrorを: 'ASCII' コーデックが4位文字Uは '\ u2013' をエンコードすることはできません。序数は範囲外です(128) –

+0

OK hmm .. SQLクエリを文字列に入れて、それをあなたのメソッドに渡してみてください – X0r

+0

私はPythonを学んでいます。どうすればいいのか教えてください。 –

関連する問題