【发布时间】:2021-11-18 05:41:09
【问题描述】:
我将在 python 中执行多个 SQL 查询,但我认为因为它们在数组中,所以有一些额外的字符,例如 [" "] read_sql_query 函数无法执行它们,或者可能还有另一个问题。有谁知道我该如何解决这个问题?
我的数组:
array([['F_TABLE1'],
['F_TABLE2'],
['F_TABLE3'],
['F_TABLE4'],
['F_TABLE5'],
['F_TABLE6'],
['F_TABLE1'],
['F_TABLE8']], dtype=object)
我的python代码:
SQL_Query = []
for row in range(len(array)):
SQL_Query.append('SELECT ' + "'" + array[row] + "'" + ', COUNT(*) FROM ' + array[row])
SQL = []
for row in range(len(SQL_Query)):
SQL = pd.read_sql_query(SQL_Query[row], conn)
PS:我将它们分成两个for,看看我的代码有什么问题。
我还打印其中一个数组以查看我的数组的输出。
print(SQL_Query[0])
输出:
["SELECT 'F_CLINICCPARTY_HIDDEN', COUNT(*) FROM F_TABLE1"]
由于上面的输出,我认为问题是多余的字符。
它给了我这个错误:
Execution failed on sql '["SELECT 'F_TABLE1', COUNT(*) FROM F_TABLE1"]': expecting string or bytes object
【问题讨论】:
-
尝试使用 array[row][0] 而不是 array[row] 或 SQL_Query[row] 到 SQL_Query[row][0]
-
谢谢,但是当我写 array[row][0] 时它只给了一行,我想要整个 8 行。(最后一行)
-
在你的第一个 for 循环中替换这一行:SQL_Query.append('SELECT ' + "'" + array[row] + "'" + ', COUNT() FROM ' + array [row]) with SQL_Query.append('SELECT ' + "'" + array[row][0] + "'" + ', COUNT() FROM ' + array[row][0])
-
然后你也可以在第二个 for 循环中改变:SQL = pd.read_sql_query(SQL_Query[row], conn) to SQL = pd.read_sql_query(SQL_Query[row], conn) to SQL = pd.read_sql_query(SQL_Query[row][0], conn)
-
是的,我这样做了,但是对于第二个循环,当我打印数据框时,它只给了我最后一行。