Es fällt mir schwer, Daten zu konvertieren. Ich wähle die Daten aus meiner Datenbank aus, die im Tupelformat zurückgegeben werden. Ich versuche sie mit zu konvertieren list()
, aber alles was ich bekomme ist eine Liste von Tupeln. Ich versuche, sie mit ganzen Zahlen zu vergleichen, die ich durch das Parsen meines JSON erhalte. Was wäre der einfachste Weg, diese beiden zu konvertieren und zu vergleichen?
from DBConnection import db
import pymssql
from data import JsonParse
db.execute('select id from party where partyid = 1')
parse = JsonParse.Parse()
for row in cursor:
curList = list(cursor)
i = 0
for testData in parse:
print curList[i], testData['data']
i += 1
Ausgabe:
(6042,) 6042
(6043,) 6043
(6044,) 6044
(6045,) 6045
SQL-Ergebnisse werden immer als Zeilen angezeigt , bei denen es sich um Spaltenfolgen handelt. Dies gilt auch dann, wenn in jeder Zeile nur eine Spalte vorhanden ist.
Als Nächstes führen Sie die Abfrage für das db
Objekt aus (was auch immer das sein mag), iterieren jedoch über den Cursor. ob das überhaupt funktioniert, liegt eher am Glück. Normalerweise führen Sie eine Abfrage für das Cursorobjekt aus.
Wenn Sie erwarten, dass nur eine Zeile zurückgegeben wird, können Sie cursor.fetchone()
diese eine Zeile abrufen. Ihre for row in cursor
Schleife überspringt tatsächlich die erste Zeile .
Du könntest benutzen:
cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result = cursor.fetchone()[0]
Um die erste Spalte der ersten Zeile abzurufen, können Sie auch die Tupelzuweisung verwenden:
cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result, = cursor.fetchone()
Wenn Sie mit mehreren Zeilen übereinstimmen müssen, können Sie ein Listenverständnis verwenden, um alle diese id
Spalten zu extrahieren :
cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result = [row[0] for row in cursor]
Jetzt haben Sie eine Liste von id
Werten.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen