使用 JSON 解析 API

Parsing with JSON for API

构建一个 Pokemon API 将 Pokemon 描述翻译成莎士比亚文本。 我想从 API 端点取我的口袋妖怪名字:https://pokeapi.co/api/v2/pokemon?limit=151%27

目标:当我 运行 http://127.0.0.1:5000//api/v1/pokemon/all 时,我想在 json 中显示我从 Pokemon 端点获得的内容。我觉得我已经很接近了,但我还缺少一些东西。

如有任何帮助,我们将不胜感激

到目前为止的代码:

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

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

url = "https://pokeapi.co/api/v2/pokemon?limit=151%27"

payload = "{\n    \"name\": \"Julian\",\n    \"message\": \"Posting JSON data to Flask!\"\n}"
headers = {
  'Content-Type': 'text/plain',
  'Cookie': '__cfduid=d819fa7205412e277649e0ce70eb381211600699952'
}

response = requests.request("GET", url, headers=headers, data = payload)

@app.route('api/v1/pokemon/all')
def poke_names():
    to_parse =response.text.encode('utf8')
    requests.get(url, names=name)
    response_data = {name:"name", descrip:"description"}
    return jsonify(**response_data)


if __name__ == "__main__":
    app.run(debug=True) 

感谢您的帮助!

也许我的示例可以帮助您实现目标。

from flask import Response

@app.route('api/v1/pokemon/all')
def poke_names():
    url = "https://pokeapi.co/api/v2/pokemon?limit=151"
    response = requests.get(url)
    return Response(response.text, mimetype='application/json')

@app.route('api/v1/pokemon/all')
def poke_names():
    url = "https://pokeapi.co/api/v2/pokemon?limit=151"
    response = requests.get(url)
    data = response.json()
    return jsonify(data)

我可能不明白你的目标,而你正试图给出所有可能的名字。

@app.route('/api/v1/pokemon/all')
def poke_names():
    data = []
    url = "https://pokeapi.co/api/v2/pokemon?limit=151"
    while True:
        resp = requests.get(url)
        json = resp.json()
        data.extend(json.get('results', []))
        url = json.get('next')
        if not url: break
    return jsonify(data)

你应该想想你的项目的用处。目前看来您只是在编写某种代理程序。