python - "Execution failed on sql"用于使用 pandas.read_sql 和 MSAccess 的特定表名

标签 python ms-access pandas pypyodbc

最奇怪的事情正在发生。我正在使用 Python 2.7 32 位中的 pypyodbc 和 pandas.io.sql 连接到 Access DB。以下代码可以与任何表名(table_name)完美配合:

var = psql.read_sql("SELECT * FROM table_name;",conn)

除了名为货币的表。 我什至可以调用表 Currenc 并且代码可以正常工作,没有问题。一旦我在末尾添加y,我就会得到:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pandas\io\sql.py", line 421, in read_sql
coerce_float=coerce_float, parse_dates=parse_dates)
File "C:\Python27\lib\site-packages\pandas\io\sql.py", line 1046, in read_sql
cursor = self.execute(*args)
File "C:\Python27\lib\site-packages\pandas\io\sql.py", line 1041, in execute
raise_with_traceback(ex)
File "C:\Python27\lib\site-packages\pandas\io\sql.py", line 1030, in execute
cur.execute(*args)
File "C:\Python27\lib\site-packages\pypyodbc.py", line 1605, in execute
self.execdirect(query_string)
File "C:\Python27\lib\site-packages\pypyodbc.py", line 1631, in execdirect
check_success(self, ret)
File "C:\Python27\lib\site-packages\pypyodbc.py", line 986, in check_success
ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
File "C:\Python27\lib\site-packages\pypyodbc.py", line 954, in ctrl_err
raise ProgrammingError(state,err_text)
pandas.io.sql.DatabaseError: Execution failed on sql: SELECT * FROM Currency;

有什么想法吗?

谢谢

最佳答案

货币reserved word在 Access SQL 中,因此如果需要将其用作表(或列)名称,则必须将其括在方括号中,即

SELECT ... FROM [Currency]

关于python - "Execution failed on sql"用于使用 pandas.read_sql 和 MSAccess 的特定表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33323736/

相关文章:

python - 如何使用分组数据的后续行的值来使用pyspark确定当前行的值

Python SyntaxError : invalid syntax, python3 中的函数参数是否允许使用括号?

c# - 最终用户机器上的 C# 数据库 Access 需要 Microsoft Access 吗?

python - 与没有索引的 Pandas 融化相反

python - 随机用户可以访问 mysql 数据库

python - isinstance 文件 python 2.7 和 3.5

sql-server - MS-Access 将 SQL Server 的 datetime2 字段视为 TEXT

java - System.out.println() 从数据库到表

python - 按行值过滤 pandas 数据框时出现问题?

python - 在Python中从数据帧创建字典