使用Python in Excel读取本地SQLite表时提示“表不存在”的问题求助
解决Python in Excel中SQLite找不到表的问题
我之前碰到过几乎一模一样的情况,大概率是路径转义错误或者实际连接到了错误的数据库文件导致的,咱们一步步来排查解决:
1. 优先修复路径的转义问题
你写的路径C:\Users\benpr\mu_code\nbssh.db里的单反斜杠在Python中是转义字符,比如\U会被解析为Unicode转义序列,导致实际生成的路径和你预期的完全不一样——甚至可能在错误的位置自动创建了一个新的空SQLite数据库,自然找不到results表。
修改路径有三种靠谱的方式,选一种就行:
- 使用原始字符串(最推荐):在路径前加
rmy_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
相关产品推荐
相关产品推荐

