【发布时间】:2012-03-27 14:39:47
【问题描述】:
我正在使用 Python 和 SQLite 3。我有用户输入了 SQL 查询,需要为模板语言格式化这些查询的结果。
所以,基本上,我需要使用 DB API 游标 (PEP 249) 的 .description,但我需要同时获取列名 和 表名,因为用户经常进行联接.
显而易见的答案,即读取表定义是不可能的——许多表具有相同的列名。
我还需要对聚合函数(如 avg(field))的列/表名称进行一些智能行为...
我能想到的唯一解决方案是使用 SQL 解析器并分析 SELECT 语句(叹气),但我没有找到任何看起来非常好的 Python 的 SQL 解析器?
我没有在文档中找到任何内容,也没有发现任何其他有同样问题的人,所以我可能遗漏了一些明显的东西?
编辑:要清楚——问题是要找到 SQL 选择的结果,其中选择语句是由用户在用户界面中提供的。我无法控制它。正如我上面提到的,阅读表定义并没有帮助。
【问题讨论】:
标签: python python-db-api