在python中,什么是字符缓冲区?

时间:2012-03-31 07:11:55

标签: python html database sqlite

我是初学SQLite用户,遇到了一些麻烦,希望找到可以提供帮助的人。

我正在尝试从数据库中读取一些数据,将其放入python中的变量并将其打印到HTML页面上。

数据库中的表是calle“Status”,它包含两列“stamp”和“messages”。 “stamp是包含时间戳的INT,”messages“包含TEXT。

@cherrypy.expose
def comment(self, ID = None):
    con = lite.connect('static/database/Status.db')
    output = ""
    with con:    
        cur = con.cursor()    
        cur.execute("SELECT * FROM Status WHERE stamp = ?", (ID,))
        temp = cur.fetchone()
        output = temp[0]

    comments = self.readComments(ID)


    page = get_file(staticfolder+"/html/commentPage.html")
    page = page.replace("$Status", output)

我得到的错误是:

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/cherrypy/_cprequest.py", line 606, in respond
    cherrypy.response.body = self.handler()
  File "/usr/lib/pymodules/python2.7/cherrypy/_cpdispatch.py", line 25, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "proj1base.py", line 184, in comment
    page = page.replace("$Status", output)
TypeError: expected a character buffer object

我想知道是否有人可以帮我澄清字符缓冲区对象是什么,以及如何使用它来使我的代码工作?

1 个答案:

答案 0 :(得分:2)

首先将“字符缓冲区”替换为“字符串”。 (在Python中有更多类型暴露“缓冲协议”,但现在不要理会它们。)很可能,output最终不是字符串。将其类型记录在错误之前的行中。