使用int()将字符串转换为int时出错

时间:2015-07-30 22:43:04

标签: python api flask

我正在使用Flask编写一个非常基本的API。它应该做的就是从URI中获取字符串,将其转换为整数,将其乘以1000以从秒到毫秒,将其添加到当前时间(以毫秒为单位),并以时间格式解析输出。

这是我到目前为止将秒转换为毫秒的代码:

from flask import Flask, request, url_for

@app.route('/api/<seconds>')
    def api_seconds(seconds):
    milliseconds = int(seconds) * 1000
    return 'Seconds: ' + seconds + '\n' + 'Milliseconds: ' + milliseconds

这将返回内部服务器错误。当我完全删除毫秒变量并使用秒时,它工作正常。根据Flask页面,@app.route('api/<int:seconds>')应该将字符串作为整数返回,我可以省略int(seconds)。但是,这也会返回内部服务器错误。

此外,'\n'并未为我创建新行。

1 个答案:

答案 0 :(得分:3)

您无法使用整数连接字符串。在连接之前将整数转换为字符串。

return 'Seconds: ' + seconds + '\n' + 'Milliseconds: ' + str(milliseconds)
                                                         ^

或者,您可以使用字符串格式,它会为您处理:

return 'Seconds: {}\nMilliseconds: {}'.format(seconds, milliseconds)

由于您正在使用Flask框架并将在浏览器中将其显示为HTML,因此您需要使用适当的换行符,例如<br />

return 'Seconds: {}<br />Milliseconds: {}'.format(seconds, milliseconds)