繁体   English   中英

使用 Flask 框架从 Python 中的口袋妖怪 API 获取请求

[英]GET request from Pokemon API in Python with Flask Framework

我正在构建一个 API,它从https://pokeapi.co/获取名称和描述信息,并用这个https://funtranslations.com/api/shakespeare翻译描述。

当前意图:当我请求http://127.0.0.1:5000/v1/pokemon时,我只是想让原始的 151 只宠物小精灵在我的服务器上显示为 JSON

问题: TypeError: 'module' object is not callable

代码:

from flask import Flask
from flask_restful import Resource, Api
import requests, jsonify, json

app = Flask(__name__)
api = Api(app)

class Pokemon(Resource):
    def get(self, name, description):
        return info[name, description]

@app.route('/v1/pokemon/')
def orig_names():
  r = requests.get(
      'https://pokeapi.co/api/v2/pokemon?limit=151%27')
  return jsonify(r)

短的

您正在使用模块 jsonify 并直接调用它(这不起作用,如错误所述:模块不可调用)。

使用jsonify模块中的flask

from flask import jsonify

模块是带有代码(类、函数等)的 Python 文件的奇特名称。 import 语句允许您导入一个模块(即在您的运行时中包含模块中的代码)。 导入模块意味着您可以从模块内部执行函数和使用类。 这并不意味着您可以调用模块本身。

jsonify 模块与您打算使用的 jsonify function 完全不同(并且不同): https://pypi.org/project/jsonify/

您要使用的 jsonify function 是 Flask 模块的一部分( from flask import jsonify )。 请参阅https://flask.palletsprojects.com/en/1.1.x/api/#flask.json.jsonify

function 返回一个 Flask 响应 object,你想在响应中封装 Pokemon api 的哪些数据由你决定!

from flask import Flask, jsonify
from flask_restful import Resource, Api
import requests

app = Flask(__name__)
api = Api(app)

class Pokemon(Resource):
    def get(self, name, description):
        return info[name, description]

@app.route('/v1/pokemon/')
def orig_names():
  r = requests.get(
      'https://pokeapi.co/api/v2/pokemon?limit=151%27')
  response_data = {} # up to you
  return jsonify(**response_data)

貌似导入jsonify模块直接调用

jsonify(r)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM