Python 烧瓶:类型错误:';int';对象不可调用

Python 烧瓶:类型错误:';int';对象不可调用,python,flask,typeerror,Python,Flask,Typeerror,我是Python新手,在这个项目中学习Python,这个问题让我很困惑。这是我的密码: from flask import Flask from datetime import datetime # Setup app app = Flask(__name__) # Initialize data dict data = {} # Pretty-formats a time difference def formatdifference(delta): seconds = delt

我是Python新手,在这个项目中学习Python,这个问题让我很困惑。这是我的密码:

from flask import Flask
from datetime import datetime

# Setup app
app = Flask(__name__)

# Initialize data dict
data = {}

# Pretty-formats a time difference
def formatdifference(delta):
    seconds = delta.total_seconds()
    if (seconds < 60):
        return "{seconds} seconds ago" % {"seconds": seconds}

    return "{minutes} minutes ago" % {"minutes": seconds/60}

# Sets a device battery level
@app.route("/set/<device>/<int:battery>")
def set(device, battery):
    data[device] = (battery, datetime.now())
    return "done"

# Get's a device battery level
@app.route("/get/<device>")
def get(device):
    if not device in data:
        return "No heartbeats"

    devicedata = data[device]
    delta = datetime.now() - devicedata[1]

    if (delta.total_seconds() > 10):
        return "Last heartbeat {diff}" % {"diff": formatdifference(delta)}

    return devicedata[0]

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')
使用flask的调试器,我可以看到在最后一帧中,应用程序似乎是40


这到底是怎么发生的,我该怎么解决呢?

您应该返回字符串对象,而不是int对象:

替换以下行:

return devicedata[0]
data[device] = (battery, datetime.now())
与:


或者,替换以下行:

return devicedata[0]
data[device] = (battery, datetime.now())
与:


你的意思是
返回str(devicedata[0])
?@falsetru看起来像我!这就解决了,谢谢!谢谢,我已经敲了我的头5分钟了,因为我以前没有读过你的答案:)
data[device] = (str(battery), datetime.now())