类型错误:“账户”对象不是可迭代
类型错误:“账户”对象不是可迭代
我正在使用的Tkinter和Peewee ORM的脚本。我有:
db = SqliteDatabase('data.db') introspector = Introspector.from_database(db)
models = introspector.generate_models()
cities_list = []
account_obj = models['accounts']
recordset= account_obj.select()
for r in recordset:
city = str(r.city)
elapsed_hours = (time.time()-int(r.datetime))/3600
cities_list.append(str(r.city)+'-'+str(elapsed_hours))
master = tk.Tk()
variable = StringVar(master)
variable.set(cities_list[0]) # default value
w = OptionMenu(master, variable, *cities_list)
w.pack()
def ok():
print ("value is:" + variable.get())
v_list = variable.get().split('-')
print type(account_obj)
recordset = account_obj.select().where(account_obj.city.contains(v_list[0])).get()
for r in recordset:
r.datetime=int(time.time())
r.update()
button = Button(master, text="OK", command=ok)
button.pack()
mainloop()
在第二个SELECT语句:
recordset = account_obj.select().where(account_obj.city.contains(v_list[0])).get()
我越来越:
Traceback (most recent call last): <class 'peewee.BaseModel'>
File "...lib\lib-tk\Tkinter.py", line 1542, in __call__
return self.func(*args)
File "... myscript.py", line 46, in ok
for r in recordset:
TypeError: 'accounts' object is not iterable
我在做什么错?
回答:
在@Nae的请求,这是我工作的代码重新排列:
master = tk.Tk() variable = StringVar(master)
variable.set(cities_list[0]) # default value
w = OptionMenu(master, variable, *cities_list)
w.pack()
def ok():
print ("value is:" + variable.get())
master.destroy()
button = Button(master, text="OK", command=ok)
button.pack()
mainloop()
v_list = variable.get().split('-')
recordset = account_obj.select().where(account_obj.city.contains(v_list[0]))
for r in recordset:
r.datetime = int(time.time())
r.save()
问题竟然是我的表,我从CSV导入的没有一个主键。一旦我添加了,save()开始工作。请参阅http://docs.peewee-orm.com/en/latest/peewee/querying.html#updating-existing-records
以上是 类型错误:“账户”对象不是可迭代 的全部内容, 来源链接: utcz.com/qa/266170.html