python3-sql解析库——sqlparse

1.官方文档

  https://sqlparse.readthedocs.io/en/latest/

2.快速开始

  使用pip或者conda安装:

 

conda install sqlparse

 

  使用官网示例快速入门,使用sqlparse的三大常用功能:

# -*- coding:UTF-8 -*-
import sqlparse

sql = "select id,name_,age from dual;select id,'18;19',age from actor;"
# 1.分割SQL
stmts = sqlparse.split(sql)
for stmt in stmts:
    # 2.format格式化
    print(sqlparse.format(stmt, reindent=True, keyword_case="upper"))
    # 3.解析SQL
    stmt_parsed = sqlparse.parse(stmt)
    print(stmt_parsed[0].tokens)

  输出如下:

SELECT id,
       name_,
       age
FROM dual;
[<DML 'select' at 0x20A7A0F3F48>, <Whitespace ' ' at 0x20A7A0FD5E8>, <IdentifierList 'id,nam...' at 0x20A7A0FA6D8>, <Whitespace ' ' at 0x20A7A0FD828>, <Keyword 'from' at 0x20A7A0FD888>, <Whitespace ' ' at 0x20A7A0FD8E8>, <Identifier 'dual' at 0x20A7A0FA660>, <Punctuation ';' at 0x20A7A0FD9A8>]
SELECT id,
       '18;19',
       age
FROM actor;
[<DML 'select' at 0x20A7A0F3B88>, <Whitespace ' ' at 0x20A7A0F3BE8>, <IdentifierList 'id,'18...' at 0x20A7A0FA7C8>, <Whitespace ' ' at 0x20A7A0F3E28>, <Keyword 'from' at 0x20A7A0F3E88>, <Whitespace ' ' at 0x20A7A0F3EE8>, <Identifier 'actor' at 0x20A7A0FA0C0>, <Punctuation ';' at 0x20A7A0F36A8>]

3.实例

 

posted @ 2019-07-31 11:01  ---江北  阅读(11768)  评论(0编辑  收藏  举报
TOP