我无法从位于与我工作的Jupyter笔记本相同的目录中的sqlite数据库中将数据读入Python。
错误消息(下面)让我相信数据库中不存在表 Player_Attributes ,但在使用DB Browser for SQLite进行探索后,我发现确实存在。
任何指导都将不胜感激。
代码:
cnx = sqlite3.connect('database.sqlite')
df = pd.read_sql_query('SELECT * FROM Player_Attributes', cnx)
错误讯息:
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last) /home/captain/anaconda3/lib/python3.5/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs) 1403 else:
-> 1404 cur.execute(*args) 1405 return cur
OperationalError: no such table: Player_Attributes
During handling of the above exception, another exception occurred:
DatabaseError Traceback (most recent call last) <ipython-input-4-c51fe6ea9537> in <module>()
5
6 cnx = sqlite3.connect('database.sqlite')
----> 7 df = pd.read_sql_query('SELECT * FROM Player_Attributes', cnx)
/home/captain/anaconda3/lib/python3.5/site-packages/pandas/io/sql.py in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize)
330 return pandas_sql.read_query(
331 sql, index_col=index_col, params=params, coerce_float=coerce_float,
--> 332 parse_dates=parse_dates, chunksize=chunksize)
333
334
/home/captain/anaconda3/lib/python3.5/site-packages/pandas/io/sql.py in read_query(self, sql, index_col, coerce_float, params, parse_dates, chunksize) 1437 1438 args = _convert_params(sql, params)
-> 1439 cursor = self.execute(*args) 1440 columns = [col_desc[0] for col_desc in cursor.description] 1441
/home/captain/anaconda3/lib/python3.5/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs) 1414 ex = DatabaseError( 1415 "Execution failed on sql '%s': %s" % (args[0], exc))
-> 1416 raise_with_traceback(ex) 1417 1418 @staticmethod
/home/captain/anaconda3/lib/python3.5/site-packages/pandas/compat/__init__.py in raise_with_traceback(exc, traceback)
342 if traceback == Ellipsis:
343 _, _, traceback = sys.exc_info()
--> 344 raise exc.with_traceback(traceback)
345 else:
346 # this version of raise is a syntax error in Python 3
/home/captain/anaconda3/lib/python3.5/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs) 1402 cur.execute(*args, **kwargs) 1403 else:
-> 1404 cur.execute(*args) 1405 return cur 1406 except Exception as exc:
DatabaseError: Execution failed on sql 'SELECT * FROM Player_Attributes': no such table: Player_Attributes
答案 0 :(得分:0)
cnx = sqlite3.connect('database.sqlite')
在这一行中,您不仅要指定文档名称,还必须提供文件的完整路径。