使用python解析SQL以提取列和表名

2024-10-08 19:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一段代码,从没有JOIN关键字的查询中提取表名和列名。相反,笛卡尔连接(,)的用法如下:

SELECT suppliers.supplier_name, subquery1.total_amt
FROM suppliers
,
(SELECT supplier_id, SUM(orders.amount) AS total_amt
FROM orders
GROUP BY supplier_id) subquery1
WHERE subquery1.supplier_id = suppliers.supplier_id;"""

我尝试使用下面的代码,但它在python 2.7中不起作用,因为我得到一个错误:Bool object not callable at line 21:

^{pr2}$

错误:这是回溯:

Traceback (most recent call last):
  File "4.py", line 77, in <module>
    extract_tables(strsql)
  File "4.py", line 60, in extract_tables
    extracted_tables.append(set(list(extract_table_identifiers(stream))))
  File "4.py", line 40, in extract_table_identifiers
    for item in token_stream:
  File "4.py", line 21, in extract_from_part
    if item.is_group():
TypeError: 'bool' object is not callable

Tags: 代码infrompyidtableslineextract
1条回答
网友
1楼 · 发布于 2024-10-08 19:25:06

感谢@Gphilo的回答:

回溯似乎不是一个简单的属性,但实际上它不是一个简单的属性。尝试更换项目组()与项目组看看情况是否好转

相关问题 更多 >

    热门问题