首页 > 解决方案 > 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)

但这就是我得到的 在此处输入图像描述

标签: pythonrsqlitersqlite

解决方案


首先确保您在连接字符串上提供了到 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 数据库的众多工具之一来确认,

您可以使用此工具,尝试直接导航到您的数据库所在的位置,它会为您提供问题的指示。

下载windows版本

下载 Mac 版本

下载linux版本

祝你好运


推荐阅读