Jupyter Notebook中%sql魔法函数执行SQLite查询报错求助
解决Jupyter %sql魔法函数查询含特殊字符列名的语法错误
方法1:用反引号包裹列名
SQLite支持反引号作为标识符的包裹符号,替换原查询的双引号即可:%sql SELECT `Elementary, Middle, or High School` FROM chicago_public_schools_data LIMIT 1;方法2:用方括号包裹列名
部分场景下SQLite兼容方括号包裹标识符,也可以尝试:%sql SELECT [Elementary, Middle, or High School] FROM chicago_public_schools_data LIMIT 1;方法3:配置SQLite的标识符引用规则
如果前两种方法无效,可手动设置SQLite使用双引号作为标识符引号:%config SqlMagic.autocommit=False import sqlite3 conn = sqlite3.connect('你的数据库文件路径.db') conn.execute("PRAGMA quote_char='\"'") %sql sqlite:///你的数据库文件路径.db执行完上述配置后,再运行原查询就能正常解析双引号包裹的列名了。
问题原因
命令行SQLite客户端默认允许双引号包裹标识符,但Jupyter的%sql魔法函数(基于ipython-sql)的语法解析规则更严格,默认把双引号解析为字符串常量,而非列名标识符,因此触发了or关键字相关的语法错误。
内容的提问来源于stack exchange,提问作者Berchister
相关产品推荐
相关产品推荐

