sqlparse 是一个非常流行的 SQL 解析器库,可以将 SQL 语句转换成 AST(抽象语法树)形式,支持格式化、美化、语法高亮等功能。使用方法如下:
pip install sqlparse
import sqlparse
sql = "SELECT * FROM table WHERE id = 1;"
parsed = sqlparse.parse(sql)
print(parsed)
formatted = sqlparse.format(sql, reindent=True, keyword_case='upper')
print(formatted)
ply 是另一个比较流行的 Python 解析器库,支持生成语法分析器和词法分析器,可以用于解析各种编程语言的代码,包括 SQL。使用方法如下:
pip install ply
from ply.lex import lex
from ply.yacc import yacc
tokens = ('SELECT', 'FROM', 'WHERE', 'ID')
def t_ID(t):
r'[a-zA-Z_][a-zA-Z_0-9]*'
t.type = t.value.upper()
return t
def p_statement(p):
'''statement : SELECT ID FROM ID WHERE ID'''
print(p[1], p[2], p[3], p[4], p[5])
lexer = lex()
parser = yacc()
sql = "SELECT * FROM table WHERE id = 1;"
lexer.input(sql)
parser.parse(sql)
以上就是使用 Python 解析 SQL 语句的两种常见方法。如果您有其他问题或需要进一步了解,请随时提问。