私はPythonのnoobです。VADERを使っていくつかの感情分析を行った後、MySQLdb操作でテーブルを更新するのに問題があります。スクリプトは次のようになります。python mysqldbテーブルの更新が動作しない
#!/usr/bin/env python
from nltk.tokenize import sent_tokenize
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
import MySQLdb as my
try:
db = my.connect(host="*",
user="*",
passwd="*",
db="*")
cur = db.cursor()
cur.execute("SELECT id,content FROM text where relscore >=100")
for row in cur.fetchall():
tableid = row[0]
textin = row[1].rstrip('\n') + ' '
sentences = sent_tokenize(textin)
analyzer = SentimentIntensityAnalyzer()
sum = 0
count = 0
for sentence in sentences:
vs = analyzer.polarity_scores(sentence)
count += 1
sum += vs['compound']
avg = sum/count
cur.execute("update text set sentiment = %s where id = %s",(avg,tableid))
db.close()
except my.Error as e:
print(e)
私はエラーなしで期待どおりに実行します、を除いて/試しせずにこれを実行しましたが、値がDBに更新されませんでしたとき。 、私は、MySQLからエラーにアクセスしようとする以外に試して/追加しましたが、私はそれを試してみるのインデントレベルを一致させるように見えるので、私はそれを取得しないこと
except my.Error as e:
^
IndentationError: unindent does not match any outer indentation level
で構文エラーを取得しています私が見つけた例のように見えます。しかし、私はノブだと言ったように、私はおそらく明らかに何かを欠いているでしょう。
私は、デバッガでselect文が動作しており、avgが計算されていることを確認し、ユーザがdbとtableに必要な権限を持っていることを確認しました。助けてもらえますか?
を再テスト:.削除してもう一度テストしてください –