我正在使用Python中的SQL代码解析器进行进一步的代码分析。我决定使用“sqlparse”Python库,在解析文本后,我想知道特定的标记类型,如“标识符”,“关键字”,.
全球跑步后:
raw = 'select * from foo join fuu on foo.id = fuu.id where id in (select id from bar);'
statements = sqlparse.parse(raw)
print(statements[0].tokens)
字符串
我可以看到:
[<DML 'select' at 0x298851E3DC0>, <Whitespace ' ' at 0x2988523C400>, <Wildcard '*' at 0x2988523C100>, <Whitespace ' ' at 0x2988523C160>, <Keyword 'from' at 0x2988523C1C0>, <Whitespace ' ' at 0x2988523CB20>,
型
标记是“空白”还是任何其他类型都是可见的。但是只有在打印语句中打印整个列表时才可见。我如何在代码中获得信息,无论它是空白,关键字还是其他类型?
我尝试了库中的多个函数,但仍然无法获得。(库的文档)https://buildmedia.readthedocs.org/media/pdf/sqlparse/latest/sqlparse.pdf
存在ttype之类的东西,但它不起作用。一个标记是type <class 'sqlparse.sql.Token'>。
有什么建议吗?
1条答案
按热度按时间a1o7rhls1#
我自己对sqlparse还是个新手,但这是我的解决方案。如果你知道如何改进它,请留下评论!
字符串