Ich habe ein wiederkehrendes Problem, wenn ich MSSQL-Abfragen mit Pymssql durchführen.pymssql: entfernen oder ersetzen NULL-Werte aus Ergebniszeilen
Dies ist der Code ich benutze:
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)
Die listOfRows Liste endet als Liste Tupel up wie:
[('value1', None, 'valuex'), (None, 'value2', 'valuex'), None]
Beachten Sie, dass die keine Werte Tupel haben, sondern auch die Liste endet immer mit dem letzten Wert, der auch None ist.
Viele Operationen, die ich mit diesen Ergebnissen versuche, geben mir einen Fehler. Zum Beispiel:
[list(x) for x in listOfRows]
Ergebnisse in dem Fehler:
TypeError: 'NoneType' object is not iterable
Gibt es einen effizienten Weg, um dieses Problem zu vermeiden? Die Lösung kann entweder auf Abfrageebene oder mit einer Python-Methode sein. Ich verbringe viel Zeit damit, für Schleifen zu schreiben, um keine Werte zu entfernen.
Wenn 'listOfRows' tatsächlich '[(' wert1 ', keine,' wertx '), (keine,' wert2 ',' wertx ')]' 'ist, wird dieser Fehler nicht angezeigt. Da ist noch etwas mehr los. – Mureinik