前提・実現したいこと
chromeで入力した3つの日本語をpythonでバイト型から日本語に変換できずに困っています。
参考ページの
「Unicodeエスケープされた文字列を通常の文字列に変換」
でできると思っていましたがうまく動きません。
この画像のようになってしまいます。
html側では「あいう」という文字をconsole.logで確認できています。
これをPOSTメソッドで送るときにバイト型に変換されて、それをpython側で上手く日本語化できていません。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
js
1$("#submit").click(function(){ 2 var val1 = $('#my-form [name=name1]').val(); 3 console.log(val1); 4 var val2 = $('#my-form [name=name2]').val(); 5 console.log(val2); 6 var val3 = $('#my-form [name=name3]').val(); 7 console.log(val3); 8 event.preventDefault(); 9 10//送る文字列定義 11 var kei = val1 +","+ val2 +","+ val3; 12 console.log(kei); 13 var $SCRIPT_ROOT = {{ request.script_root|tojson|safe }}; 14 $.ajax({ 15 type: "POST", 16 url: $SCRIPT_ROOT + "/predict/", 17 data:kei , 18 19 success: function(data){ 20 $('#result').text(' 推測結果: '+data); 21 }, 22 error: function(data){ 23 $('#result').text('データ不足です'); 24 } 25 }); 26});
python
1@app.route('/predict/',methods=['GET','POST']) 2def predict(): 3 #print((request.get_data()).decode('utf-8')) 4 #一次元の配列 5 label = (request.get_data()).decode('utf-8') 6 lablel = label.encode().decode('unicode-escape') 7 shape = str(type(label)) 8 percent = 1 9 percent = round(float(percent)*100,1) 10 percent = str(percent) 11 return json.dumps({ 12 "label":label, 13 "shape":shape, 14 "percent":percent+"%" 15 }) 16 17
試したこと
python側を下のようにすると
label = (request.get_data()).decode('unicode-escape')
label:
\u00e3\u0081\u0082,\u00e3\u0081\u0084,\u00e3\u0081\u0086",
となります。
回答1件
あなたの回答
tips
プレビュー