我最近被要求在 Flask 应用程序上进行家庭作业,以便创建一个路由,该路由将掷两个骰子并将结果作为 JSON 对象返回。
我以为我已经正确完成了程序,但失望地发现我的代码生成的不是 JSON 对象?
有谁知道我将如何获取下面的代码并将掷骰子作为键/值对返回?此时,当我访问rolldice
路线时,输出被Json化为两个掷骰子的总和。我不确定如何将其转换为键/值对。任何帮助不胜感激,再次感谢。
这是我的代码:
from flask import Flask
from flask import jsonify
app = Flask(__name__)
import json
import random
@app.route('/')
def hello_world():
return 'Hello World!'
# Create a route and function for rolling dice.
@app.route('/rolldice')
def dieobject():
# Define rollcount
rollcount = []
# Define the number of times we will roll two dice.
for i in range(0, 1):
# Define rolling two dice.
two_dieobject = random.randint(1, 6) + random.randint(1, 6)
# Take output of our dice roll and pass it to rollcount.
rollcount.append(two_dieobject)
# Return the value of rollcount as JSON Data.
# Data will be presented as one integer which is the sum of two dice rolls.
return jsonify(rollcount)
if __name__ == '__main__':
app.debug = True
app.run()
对于那些在这里问的人是我收到的输出:
[
7
]
其中显示的整数是两个掷骰子的总和。
也许是这样的。它循环执行滚动,并使用sum
函数将它们加在一起。
from flask import Flask, jsonify
import random
app = Flask(__name__)
def roll(numrolls=1):
return sum(random.randint(1, 6) for _ in range(numrolls))
@app.route('/rolldice')
def dieobject():
# make dictionary here
return jsonify({'value': roll(numrolls=2), 'rolls': 2})
if __name__ == '__main__':
app.run(debug=True)
我扩展了一点。它返回掷骰值和用于获取该值的骰子数。您可以再次扩展它,让烧瓶服务采用一个参数,说明如果需要,可以掷多少骰子。
输出
{
"rolls": 2,
"value": 7
}