我从SPACE-T模型中得到sql语句之后,怎么拿到执行结果?
可以去拿output_dict里面的QUERY_RESULT 代码是这样的:
query_result = output_dict[OutputKeys.QUERT_RESULT] # sdk里面这个是QUERT_RESULT 不知道是不是笔误
print("query_result : ",query_result)
输出的结果是 query_result : {'header_id': [], 'header_name': [], 'rows': []} rows 对应的value就是sql语句执行的结果。
SPACE-T内置了一个基于SQLite的SQL执行器,在Database类中,初始化了SQL执行器,而且设置了一个开关is_use_sqlite,这个开关默认置为了True。具体如下:
db = Database(
    tokenizer=tokenizer,
    table_file_path=os.path.join(model.model_dir, 'table.json'),
    syn_dict_file_path=os.path.join(model.model_dir, 'synonym.txt'),
    **is_use_sqlite=True**)
这里,也可以显示将is_use_sqlite置为True。这样,模型返回值里面对应的output_dict[OutputKeys.QUERT_RESULT]就保存了执行结果。 当然,你也可以将模型返回的sql-query(output_dict[OutputKeys.SQL_QUERY])放到其他SQL执行器里执行