使用 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)
你应该想想你的项目的用处。目前看来您只是在编写某种代理程序。
构建一个 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)
你应该想想你的项目的用处。目前看来您只是在编写某种代理程序。