Flask
JSONの使用
サーチ…
Flask APIからJSONレスポンスを返す
Flaskにはjsonify()
というユーティリティがあり、JSONレスポンスを返す方が便利です
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/get-json')
def hello():
return jsonify(hello='world') # Returns HTTP Response with {"hello": "world"}
curl
試してみてください
curl -X GET http://127.0.0.1:5000/api/get-json
{
"hello": "world"
}
jsonify()
を使用する他の方法
既存の辞書を使用する:
person = {'name': 'Alice', 'birth-year': 1986}
return jsonify(person)
リストを使用する:
people = [{'name': 'Alice', 'birth-year': 1986},
{'name': 'Bob', 'birth-year': 1985}]
return jsonify(people)
HTTPリクエストからJSONを受信する
HTTPリクエストのMIMEタイプがapplication/json
場合、 request.get_json()
を呼び出すと解析されたJSONデータが返されます(そうでない場合はNone
が返されます)
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
data = request.get_json()
# ... do your business logic, and return some response
# e.g. below we're just echo-ing back the received JSON data
return jsonify(data)
curl
試してみてください
パラメータ-H 'Content-Type: application/json'
は、これがJSON要求であることを指定します。
curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:5000/api/echo-json -d '{"name": "Alice"}'
{
"name": "Alice"
}
他のHTTPメソッドを使用してリクエストを送信するには、 curl -X POST
を目的のメソッド( curl -X GET
、 curl -X PUT
など)に置き換えます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow