Ich arbeite daran, die Wortwahl eines Kundenservices ("Hinweis") aus einer SQL Server 2008 R2-Tabelle zu ziehen, dann eine Sentimentanalyse auszuführen und diese Analyse zu verwenden, um das "Sentiment" zu aktualisieren. Feld in der gleichen Tabelle. Hier weitere Informationen über die Tabellenfelder:PyODBC Iterationsaktualisierung - "Keine Abfrage"
TicketNoteID(PK, int, not null)
TicketID (FK, int, not null)
UserName (varchar(20), not null)
Note (varchar(max), not null)
Author (varchar(50), not null)
isExternal (bit, null)
DateTimeCreated (datetime, not null)
NoteID (int, null)
DateTimeUploaded (datetime, null)
Error (bit, null)
ErrorMessage (varchar(max), null)
Sentiment (float, null)
Wenn ich den folgenden Code ausführen, bekomme ich diesen Fehler:
pyodbc.ProgrammingError: No results. Previous SQL was not a query.
ich meinen Code nach anderen Beiträgen zu diesem gleichen Fehler modelliert haben, aber ich Ich kann nichts finden, das das Problem lösen könnte. Hier ist der Code:
import pyodbc
from textblob import TextBlob
cnxn = pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=...')
cur = cnxn.cursor()
sql = """
SELECT Note
FROM dbo.DSDTicketNotes
where Sentiment is NULL
"""
rows = cur.execute(sql)
for row in rows:
note = cur.fetchone()
row = str(note)
blob = TextBlob(row)
sent = blob.sentiment.polarity
sentUpdate = cur.execute("UPDATE dbo.DSDTicketNotes SET Sentiment = ?", sent)
cur.close()
cnxn.close()
Ich schätze jede Hilfe!
Die 'UPDATE'-Anweisung sieht aus, als brauche sie eine' WHERE'-Klausel, andernfalls aktualisiert sie alle Zeilen für jede Iteration. – Bryan