2017-05-19 8 views
0

現在、フラスコとchatterbotで簡単なRESTサービスを設定する際に問題が発生しています。あなたは完全なコードhereを見ることができます。python/chatterbot:get_responseはdictで印刷と保存で異なる動作をします

サービスは、チャットボットからの応答を含むjsonを特定の要求に返すことです。

問題は、私は辞書でチャットボットからの応答を保存したいときに、次のとおりです。

dialog = { 
      "id": 1, 
      "usersay": request, 
      # chatterbot function to get a response from the bot 
      "botsay": chatbot.get_response(request) 
     } 

それは次のようになりますどのようchatterbot special Statement Objectとして保存されます。

"botsay": <Statement text:bot response>

私はこのオブジェクトに辞書をjsonifyしようとすると、私は次のエラーを取得する:

TypeError: Can't convert 'Statement' object to str implicitly 

私は解決策を見つけるためにオンラインで検索しましたが、役に立たないものは見つかりませんでした。さらに、私はPythonに慣れていません。私は辞書でプレーンな応答を保存したい私は

>>> request = "Hi" 
>>> print(chatbot.get_response(request)) 

を使用する場合、私は正しい出力

> Hello 

を取得します、私のために絶対的に説明できないされているので、私のようにそれを返すことができますどのような jsonをクライアントに送信します。

誰でも問題を説明できますか?

ありがとうございます!

答えて

0

問題は、Statementオブジェクトの "text"属性に。表記(see heere).

>>> response = chatterbot.get_response("Hi") 
>>> dialog = { ..., "botsay" = response.text, ... } 
>>> print dialog 
{ ..., "botsay": "Hello", ...} 
関連する問題