解析mysql并将adql转换为mysql。

queryparser-python3的Python项目详细描述


用于分析和处理mysql和adql select查询的工具

django-daiquri一起使用 作为查询处理后端,但它可以很容易地用作独立工具 或者整合到另一个项目中。

Build StatusCoverage StatusLatest Versionhttp://img.shields.io/badge/license-APACHE-blue.svg?style=flat

安装

安装软件包的最简单方法是使用pip工具:

pip install queryparser-python3

或者如果您使用的是较旧版本(2.7)的python

pip install queryparser-python2

或者,您可以克隆存储库并从那里安装它。 但是,这个步骤还需要生成一个 更详细的过程(见下文)。

从git存储库生成解析器

要生成语法分析器,您需要pythonpython(2或3),java以上版本 以及antlr4antlr-4.*-complete.jar必须安装在 /usr/local/lib//usr/local/bin/目录)。

克隆项目后运行

make

将创建一个包含python2完整源代码的lib目录 还有Python3号。之后运行

python setup.py install

在虚拟环境中安装生成的解析器。

分析mysql

可以通过创建实例来解析和处理mysql查询 属于MySQLQueryProcessor

fromqueryparser.mysqlimportMySQLQueryProcessorqp=MySQLQueryProcessor()

向它提供mysql查询

sql="SELECT a FROM db.tab;"qp.set_query(sql)

并使用

qp.process_query()

在处理之后,处理器对象qp将包括表、列, 查询中使用的函数和关键字或将引发QuerySyntaxError 如果查询中有语法错误。

或者,在初始化时传递查询会自动处理它。

翻译ADQL

通过首先创建 ADQLQueryTranslator

fromqueryparser.adqlimportADQLQueryTranslatoradql="SELECT TOP 100 POINT('ICRS', ra, de) FROM db.tab;"adt=ADQLQueryTranslator(adql)

打电话给

adt.to_mysql()

它返回一个转换后的字符串,表示一个有效的mysql查询,如果 ADQL查询没有错误。然后可以使用 MySQLQueryProcessor方法与上面所示相同。

测试

首先,安装pytest

pip install pytest

然后为要使用的python版本运行测试套件

pytest lib/python2
pytest lib/python3

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java画布矩形位置   Java类文件未在Android Studio上编译或运行   Java“null”值从未分配给我的Runnable   java Jsp使用URL“保存或打开”访问pdf窗口在单击时显示错误   组件之间的Java swing通信   属性值的java正则表达式   java无法从myFile加载MainClass清单属性。震击器错误   Java内存碎片和大型阵列的分配   java是NullPointerException的一个问题   java如何使用鳄梨酱进行sftp的二次开发   新手程序员需要建议:“字符串索引超出范围”Java   基于页面的java Birt组头   使用集合时出错。使用ArrayList和类排序()。(爪哇)   在foursquare中使用多个单词进行带查询的java场馆搜索   有了新的Java14记录功能,是否可以为同一记录创建多个构造函数?   java创建自己的文件扩展名   java组织。阿帕奇。xml。安全性在Spring Boot下不工作   java谷歌地图标记标题安卓   java为什么选项卡小部件在安卓中位于内容之上?