python - sqlite 文件在 python 和 r 中显示为空
问题描述
我正在尝试在 python 中打开一个 .sqlite3 文件,但我没有看到返回任何信息。所以我尝试了 r ,但桌子仍然是空的。我想知道这个文件中有哪些表。我对python使用了以下代码:
import sqlite3
from sqlite3 import Error
def create_connection(db_file):
""" create a database connection to the SQLite database
specified by the db_file
:param db_file: database file
:return: Connection object or None
"""
try:
conn = sqlite3.connect(db_file)
return conn
except Error as e:
print(e)
return None
database = "D:\\...\assignee.sqlite3"
conn = create_connection(database)
cur = conn.cursor()
rows = cur.fetchall()
但行是空的!这是我从以下位置获得assignee.sqlite3的地方: https ://github.com/funginstitute/downloads
我也试过 RStudio,下面是代码和结果:
> con <- dbConnect(drv=RSQLite::SQLite(), dbname="D:/.../assignee")
> tables <- dbListTables(con)
解决方案
首先确保您在连接字符串上提供了到 sql light db 的正确路径,使用这个 conn = sqlite3.connect("C:\users\guest\desktop\example.db")
还要确保您在单元测试和生产代码中使用 SQLite 库
检查 sqllite 连接字符串的类型并确定您的数据库属于哪一个:
基本数据源=c:\mydb.db;版本=3; 此类库不支持版本 2。
SQLite
内存数据库
SQLite 数据库通常存储在磁盘上,但该数据库也可以是
存储在内存中。阅读有关 SQLite 内存数据库的更多信息。
数据源=:内存:;版本=3;新=真;
SQLite
使用 UTF16 数据源=c:\mydb.db;Version=3;UseUTF16Encoding=True;
SQLite 带密码 Data Source=c:\mydb.db;Version=3;Password=myPassword;
所以请确保您为您的 sql lite db 编写了正确的连接字符串
如果您仍然看不到它,请检查包含 /tmp 的磁盘是否已满,否则,它可能是加密数据库,或者可能被其他应用程序锁定和使用,您可以通过使用 sql light 数据库的众多工具之一来确认,
您可以使用此工具,尝试直接导航到您的数据库所在的位置,它会为您提供问题的指示。
祝你好运
推荐阅读
- python - 为 cython 导入 numpy 时发生错误
- c - 如何制作一个从二维数组中删除同一组值的程序?
- android - 我的 Cast 应用程序在后台时如何播放声音?
- javascript - 如何从 javascript 中获取价值
- kubernetes - 如何在 v3.2.1 中列出有关 helm search url 的完整 url
- java - SAP Cloud SDK (Java) 在 SuccessFactors 元数据加载时引发命名错误异常
- flutter - 扩展的小部件出现异常(每个孩子必须恰好布置一次)?
- python - Django:如何显示两个或三个模型的数据
- java - 无法加载 servlet 过滤器类:com.sap.cloud.sdk.cloudplatform.security.servlet.HttpSecurityHeadersFilter (SCP Neo)
- javascript - next 和 JWT 认证组件