2016-10-14 10 views
2

はコードです:Sqlite3 INSERTクエリのエラー?私はここ</p> <p>ユーザから入力された1 ==> Hと</p> <p>生成された1チャットボットを形成==> B</p> <p>私のDB 2列varに挿入する

# initialize the connection to the database 
sqlite_file = '/Users/emansaad/Desktop/chatbot1/brain.sqlite' 
connection = sqlite3.connect(sqlite_file) 
connection.create_function("REGEXP", 2, regexp) 
cursor = connection.cursor() 
connection.text_factory = str 
connection = open 

def new_data(Input,Output): 
    row = cursor.execute('SELECT * FROM chatting_log WHERE user=?',(Input,)).fetchone() 
    if row: 
     return 
    else: 
     cursor.execute('INSERT INTO chatting_log VALUES (?, ?)', (Input, Output)) 

while True: 
    print(("B:%s" % B)) 
    H = input('H:') 
    New_H= ' '.join(PreProcess_text(H)) 
    reply= cursor.execute('SELECT respoce FROM Conversation_Engine WHERE request REGEXP?',[New_H]).fetchone() 
    if reply: 
     B=reply[0] 
     new_data(H,B) 

コードはDBからの再生を生成して選択するのに完全に機能しますが、問題はデータがないDBのchatting_logテーブルに戻ったときですか?

PS:私は、Python 3

を使用しています

+0

実際にビルドしているこの正規表現が実際にどのように見えるか、実際に何かと一致するかどうかを確認するなど、基本的なデバッグは何もしませんでしたか? –

答えて

1

常にあなたが行った変更をコミットすることを忘れないでください、ありがとうございました。この場合:connection.commit()。あなたのconnection変数をオーバーライドしたようです。

+0

はい、この解決方法を試しましたが、エラーがあります: –

+0

申し訳ありませんが、エラー:AttributeError: 'builtin_function_or_method'オブジェクトに属性 'コミット'がありません –

+0

これは 'connection = open'を設定したためです。接続インスタンスを上書きしています。その変数を上書きしないでください。データをDBにコミットする必要があるからです。なぜコード内にその行があるのか​​尋ねてもいいですか? – David

関連する問題

 関連する問題