【问题标题】:Python: dbcur.execute AttributeError: 'NoneType' object has no attribute 'execute'Python:dbcur.execute AttributeError:“NoneType”对象没有“执行”属性
【发布时间】:2014-09-14 02:51:18
【问题描述】:

我正在尝试执行这段代码:

def getServerSetting(self, setting):
    self.dbcur.execute('select value from settings where setting = ?', [str(setting)])
    rrf = self.dbr.fetchone()
    if rrf is None:
        return False
    else:
        return rrf[0]

但是,当我运行 python 脚本时出现此错误:

dbcur.execute('select value from settings where setting = ?', [str(setting)])
AttributeError: 'NoneType' object has no attribute 'execute'

【问题讨论】:

  • 您是否费心尝试赋予它一个有意义的值?
  • @IgnacioVazquez-Abrams 我相信我已经在前面的代码中定义了它:dbcon = MySQLdb.connect(host='localhost', user='removed', passwd='removed', db= '删除',端口=21) dbcur = dbcon.cursor()'
  • @ChrisArena 我该如何解决这个问题?
  • 您的意思是早先分配self.dbcur = dbcon.cursor() 吗?
  • @Gerrat 是的,我之前确实将它定义为 'dbcur = dbcon.cursor()'。

标签: python attributes nonetype


【解决方案1】:

试着像这样写你的函数。如果还有错误,请告诉我。

def getServerSetting(self, setting):

    if not self.dbcon:
        self.dbcon = MySQLdb.connect(host='localhost', user='removed', passwd='removed', db='removed', port=21)
    self.dbcur = self.dbcon.cursor()

    self.dbcur.execute('select value from settings where setting = ?', [str(setting)])
    rrf = self.dbr.fetchone()
    if rrf is None:
            return False
    else:
            return rrf[0]

【讨论】:

  • 这是我得到的错误:TransformiceServer instance has no attribute 'dbcon'
  • @tr3y put self.dbcon = MySQLdb.connect(host='localhost', user='removed', passwd='removed', db='removed', port=21) self.dbcur = self.dbcon.cursor() 在 TransformiceServer 的 __init__() 中再试一次
  • 新错误,现在错误显示:第 1846 行,在 sendProfile ava = str(self.server.getUserAvatar[username]) TypeError: 'instancemethod' object has no attribute 'getitem'
  • @tr3y 恐怕你得自己挖。这似乎是一个大项目。
猜你喜欢
  • 2019-01-01
  • 2021-12-26
  • 2019-07-23
  • 2018-05-13
  • 2020-09-07
  • 2017-05-03
  • 2023-03-16
  • 2018-07-14
  • 2013-06-16
相关资源
最近更新 更多