我正在SQL
尝试CREATE TABLE
使用pyparsing
. 对于数据库名称和表表,我创建了标识符:
identifier = (Combine(Optional('"') + Word(alphanums) +
ZeroOrMore('_' + Word(alphanums)) +
Optional('"')) & ~keywords_set)
database_name = identifier.setResultsName('database_name')
table_name = identifier.setResultsName('table_name')
我也在使用这种解析方法:
def parse(self, sql):
try:
tokens = self.create_table_stmt.parseString(sql)
print tokens.database_name, tokens.table_name
values = tokens.database_name, tokens.table_name
print values
return values
except ParseException as error:
print error
对于以下输入:
CreateTableParser().parse('''
CREATE TABLE "django"."django_site1" (
)''')
我得到:
['"django"'] ['"django_site1"']
((['"django"'], {}), (['"django_site1"'], {}))
为什么这些不同?我怎样才能以第一种方式获得输出,作为简单的列表?我只有在打印这些值时才得到它。