You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python in Excel读取本地SQLite表时提示“表不存在”的问题求助

解决Python in Excel中SQLite找不到表的问题

我之前碰到过几乎一模一样的情况,大概率是路径转义错误或者实际连接到了错误的数据库文件导致的,咱们一步步来排查解决:

1. 优先修复路径的转义问题

你写的路径C:\Users\benpr\mu_code\nbssh.db里的单反斜杠在Python中是转义字符,比如\U会被解析为Unicode转义序列,导致实际生成的路径和你预期的完全不一样——甚至可能在错误的位置自动创建了一个新的空SQLite数据库,自然找不到results表。

修改路径有三种靠谱的方式,选一种就行:

  • 使用原始字符串(最推荐):在路径前加r
    my_db = r'C:\Users\benpr\mu_code\nbssh.db'
    
  • 使用双反斜杠替代单斜杠:
    my_db = 'C:\\Users\\benpr\\mu_code\\nbssh.db'
    
  • 使用正斜杠:
    my_db = 'C:/Users/benpr/mu_code/nbssh.db'
    

2. 验证路径和数据库文件的有效性

可以在代码里加几行调试代码,确认Python in Excel能正确定位到你的数据库文件:

import pandas as pd
import sqlite3
import os

# 用修复后的路径
my_db = r'C:\Users\benpr\mu_code\nbssh.db'

# 检查文件是否存在
print(f"数据库文件是否存在:{os.path.exists(my_db)}")
# 查看Python in Excel的当前工作目录
print(f"当前工作目录:{os.getcwd()}")

conn = sqlite3.connect(my_db)
# 查询当前数据库里的所有表
cursor = conn.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(f"数据库中的表:{cursor.fetchall()}")

my_query = 'select * from results'
df = pd.read_sql_query(my_query, conn)

运行后看输出:

  • 如果数据库文件是否存在返回False,说明路径还是错了,仔细核对路径拼写;
  • 如果数据库中的表里没有results,说明你连接的不是本地脚本用的那个数据库文件,检查两个环境的路径是否完全一致。

3. 排查权限问题

有时候Python in Excel的运行环境可能没有访问你指定目录的权限,你可以试试把nbssh.db复制到你的Excel文件所在的文件夹,然后用相对路径连接:

my_db = 'nbssh.db'

如果这样能正常查询,说明是原目录的权限问题,你可以调整目录权限,或者保持数据库文件和Excel同目录使用。

内容的提问来源于stack exchange,提问作者Tantalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 09:57:30