curlコマンドからjsonを使用してhttpをPOSTしようと思っています。pythonのbottleを使おうと思っているのですが初心者のため、使い方が全くわかりません。
質問1:
Qiitaに以下のようなcurlコマンドがありましたが、これは何を表していて何をしているのでしょうか?
curl http://localhost:8080/test.php -X POST -H "Content-Type: application/json" -d '{"key": "value"}'
質問2:
ちなみにこれをanacondaで実装すると「invalid syntax」とのエラーが出ました。どこが間違っているのでしょうか?
質問3:
pythonのbottleでコマンドを書こうと思っているのですが、上の
{"key": "value"}でvalueをシリアライズした分類器にかけてreponseを受け取りたいのですが、上記のcurlコマンド以外に必要なjsonコマンドは何がありますか?
コード
from bottle import route, run # -*- coding: utf-8 -*- import pandas as pd import numpy as np import matplotlib.pyplot as plt import json import csv from collections import OrderedDict from sklearn.externals import joblib #mecab from natto import MeCab nm = MeCab() print(nm) m = MeCab("-Owakati") MODEL_FILE='bays_model-2.csv' clf = joblib.load(MODEL_FILE) #前処理 f = open('baysweb_word.csv', 'r') line = json.load(f) dek_dic={} dek_dic={v:i for i, v in enumerate(line.drop("Unnamed: 0", axis=1).columns)} def func(x): if x == None: return 1 else: return 0 # NaN @route('/housmart', method="POST") def clean_name(): curl http://localhost:8080/housmart -X POST -H "Content-Type: application/json" -d '{"clean_buldingname": "ライオンズガーデン明大前パラダイム"}' dek_dic={} dek_dic={v:i for i, v in enumerate(line.drop("Unnamed: 0", axis=1).columns.T)} def func(x): if x == None: return 1 else: return 0 # NaN are=[] for n in nm.parse(clean_buildingname, as_nodes=True): if n.surface !="": are.append(n.surface) ree=[] for i, v in dek_dic.items(): for n in are: if i==n: ree.append(v) else: pass were=[] for i,v in dek_dic.items(): if v in ree: were.append(None) else: were.append(i) xx=pd.DataFrame(were).applymap(func).T clf.predict(xx)#予測 if clf.predict(xx)==1: return str(clean_buildingname) run(host='localhost', port=8080, debug=True)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/10 15:16
2017/05/10 15:36
2017/05/10 15:56