from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
@app.route('/address_search', methods=['GET'])
def sample():
zipcode = request.args.get('zipcode', None)
url = f'https://zipcloud.ibsnet.co.jp/api/search?zipcode = {zipcode}'
response = requests.get(url)
# results = response.json()
# results = jsonify(response) ?????
return response
if __name__ == '__main__':
app.run(debug=True)
Я пытаюсь создать приложение, которое возвращает адрес.
Мне удалось вернуть URL-адрес, но насчет ответа я не могу, и появляется Internal Server Error
Вот я и подумал во фляге, requests.get(url)
нельзя использовать, но другого пути я не придумал.
Я слышал, что jsonify()
используется, но не знаю как.
Я искал его в Google в течение двух дней, но до сих пор не могу найти ответ.
Кто-нибудь, пожалуйста, дайте мне совет.
Итак, вы хотите вернуть ответ этого API в своем веб-приложении, я думаю, это то, что вы ищете?
@app.route('/address_search', methods=['GET'])
def sample():
zipcode = request.args.get('zipcode', None)
url = f'https://zipcloud.ibsnet.co.jp/api/search?zipcode = {zipcode}'
response = requests.get(url)
response_json = response.json()
return jsonify(response_json)
РЕДАКТИРОВАТЬ, ответ на ваш комментарий:
Вы не можете сделать jsonify(response_json)['results'][0]
, потому что jsonify
превращает данные JSON в объект Flask Response
, вместо этого попробуйте следующее:
@app.route('/address_search', methods=['GET'])
def sample():
zipcode = request.args.get('zipcode', None)
url = f'https://zipcloud.ibsnet.co.jp/api/search?zipcode = {zipcode}'
response = requests.get(url)
response_json = response.json()
results = response_json['results'][0]
return jsonify(results)
Опс, столкнулся с другой проблемой. Мне удалось вернуть объект json, но я попытался выбрать детали, например, results = jsonify(response_json)['results'][0], это не сработало. Выскакивает внутренняя ошибка сервера. Как я могу сделать ?
AHHH, хорошо, так что jsonify() - это объект ответа Flask, а не объект json, вот почему! Спасибо, время
Пожалуйста, не стесняйтесь отмечать мой ответ как правильный, если ваша проблема была решена.
Да, да, я думал, что это не сработало, но это сработало, лол. Спасибо, vremes, теперь у меня получилось.