【问题标题】:UnboundLocalError. Why has this occurred?未绑定本地错误。为什么会发生这种情况?
【发布时间】:2014-04-06 13:57:39
【问题描述】:
c.execute("SELECT * FROM Student, Behaviour")
data = c.fetchall() #'data' is a tuple and cannot be altered
l = []
for i in data: #for individual records in the whole database do:
    record = str(i)
    record = record.replace("u'","")
    record = record.replace("'", "")
    record = record.replace('"', '')
    record = record.replace("(","")
    record = record.replace(")", "")
    Formattedrecord = record.replace(","," -")
l.append(Formattedrecord)

这会返回错误:UnboundLocalError: local variable 'Formattedrecord' referenced before assignment 但是我不明白为什么,有人可以帮忙吗?

【问题讨论】:

  • 缩进最后一行作为循环的一部分。你得到了UnboundLocalError,因为data 是空的,但如果它不是 空的,你只需将last 条目附加到l
  • 你为什么在这里把record变成str(),然后把所有的引号都换掉?也许您想添加' - '.join(i) 而不是

标签: python list for-loop sqlite


【解决方案1】:

注意缩进:

c.execute("SELECT * FROM Student, Behaviour")
data = c.fetchall() #'data' is a tuple and cannot be altered
l = []
for i in data: #for individual records in the whole database do:
    record = str(i)
    record = record.replace("u'","")
    record = record.replace("'", "")
    record = record.replace('"', '')
    record = record.replace("(","")
    record = record.replace(")", "")
    Formattedrecord = record.replace(","," -")
    l.append(Formattedrecord) # this should be part of the for loop

【讨论】:

  • OP 可能不想想使用str(i);从外观上看,Formattedrecord = ' - '.join(i) 会更合适。
猜你喜欢
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2010-09-22
  • 1970-01-01
  • 2018-04-27
  • 2013-08-02
  • 2018-12-19
相关资源
最近更新 更多