У меня возникла повторяющаяся проблема при выполнении запросов MSSQL с использованием pymssql.pymssql: удалить или заменить значения NULL из строк результатов
Это код, я использую:
listOfRows = [] # I will append all reult rows to this list
conn = pymssql.connect(user = 'the user', password = 'password', server = 'theserver', database = 'thedb')
cursor = conn.cursor()
query = 'SELECT * FROM table'
cursor.execute(query)
row = cursor.fetchone()
while row:
row = cursor.fetchone()
listOfRows.append(row)
Список listOfRows заканчивается как список кортежей, таких как:
[('value1', None, 'valuex'), (None, 'value2', 'valuex'), None]
Обратите внимание, что кортежи имеют значения None, но и list всегда заканчивается тем, что его последнее значение также равно None.
Многие операции, которые я пытаюсь сделать с этими результатами, дают мне ошибку. Например:
[list(x) for x in listOfRows]
приводит к ошибке:
TypeError: 'NoneType' object is not iterable
Является ли эффективный способ избежать этой проблемы? Решение может быть либо на уровне запроса, либо с помощью метода Python. Я нахожу, что трачу много времени на создание циклов, чтобы удалить значения None.
Если 'listOfRows' действительно' [('value1', None, 'valuex'), (None, 'value2', 'valuex')] ', вы не получили бы эту ошибку. Здесь что-то происходит. – Mureinik