В Python, что такое символьный буфер? - PullRequest
4 голосов
/ 31 марта 2012

Я начинающий пользователь SQLite и столкнулся с некоторыми проблемами, надеясь найти кого-то, кто мог бы помочь.

Я пытаюсь прочитать некоторые данные из базы данных, поместить их в переменную на python и распечатать на HTML-странице.

Таблица внутри базы данных называется «Статус», она содержит два столбца «штамп» и «сообщения». «stamp - это INT, содержащий отметку времени, а« messages »содержит текст.

@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 Ответ

2 голосов
/ 31 марта 2012

Замените "буфер символов" на "строку" для начинающих. (Есть и другие типы, выставляющие «буферный протокол» в Python, но пока не беспокойтесь о них.) Скорее всего, output в итоге не стало строкой. Зарегистрируйте его тип в строке перед ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...