Добавление к списку результатов из SQL - PullRequest
1 голос
/ 09 июля 2019

У меня есть база данных SQL Server, в которой есть таблица, в которой перечислены другие таблицы вместе с некоторыми метаданными на них. Я могу вытащить это через Python в список. Затем я хочу запросить в каждой таблице количество строк в ней, а затем добавить результат в мой список.

Так, например, я запускаю первую часть скрипта и получаю список элементов, каждый из которых содержит список из 3 элементов (имя, вид деятельности, имя таблицы). Затем я хочу просмотреть свой список, выбрать третий элемент, использовать его в своем запросе SQL, а затем добавить результат в 4-й элемент списка.

начинается с

[[table1, act1, Table_1],[table2, act2, Table_2],[table3, act3, Table_3]]

Вторая часть, сначала занимает Table_1, считает строки, а затем добавляет его в список

[[table1, act1, Table_1,10],[table2, act2, Table_2],[table3, act3, Table_3]]

, а затем для списка 2 и т. Д.

[[table1, act1, Table_1,10],[table2, act2, Table_2,16],[table3, act3, Table_3]]

Пробовал несколько вещей, но дальше ничего не получил!

Заранее спасибо.

import pyodbc

conn = pyodbc.connect(connetStr)
cursor = conn.cursor()

wffList=[]
cursor.execute('SELECT C_NAME,C_ACTIVE, C_TABLE_NAME from T_FORM_HEAD')
for row in cursor:
    wffList.append(row)

for row in wffList:
    tabName=row[2]
    quer=('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount=cursor.fetchone()

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете создать новый список и добавить строку со всеми четырьмя значениями

new_results = []

for row in wffList:
    tabName = row[2]

    quer = ('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount = cursor.fetchone()

    row.append(rowCount)

    new_results.append(row)

print(new_results)

Или вы можете использовать перечисление, чтобы получить номер строки

for number, row in enumerate(wffList):
    tabName = row[2]

    quer = ('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount = cursor.fetchone()

    wffList[number].append(rowCount)

print(wfflist)

Но, возможно, вы могли бы также написать один SQL-запрос, чтобы получить все сразу.

Но это может быть сложно для меня в данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...