Мне нужно запустить операторы SELECT для списка файлов в наборе. Я использую следующий фрагмент кода:
def flist_in_psumsdb(config, fnames_set_in_psumsdictlist):
constring = config['db_string## Heading ##']['db_string']
cnxn = pyodbc.connect(constring)
cnxnset = { row for row in {(cnxn.execute(f"""SELECT LOG FROM {config['db_string']['bd_psums_meta_table_str']} where LOG = '{log}' """)).fetchone() for log in fnames_set_in_psumsdictlist} }
cnxn.close()
Однако, когда я запускаю его, я получаю сообщение об ошибке:
File "c:\Users\sys_nsgprobeingestio\Documents\dozie\odfs\etesthad4.py", line 458, in <setcomp>
cnxnset = { row for row in {(cnxn.execute(f"""SELECT LOG FROM {config['db_string']['bd_psums_meta_table_str']} where LOG = '{log}' """)).fetchone() for log in fnames_set_in_psumsdictlist} }
TypeError: unhashable type: 'pyodbc.Row'
Идея состоит в том, чтобы выполнить итерацию cnxset и вернуть список файлов журнала из строки pyodb c, например:
filelist = {row.LOG for row in cnxnset}
, где LOG - это, конечно, столбец из sql оператора select