类型错误:“账户”对象不是可迭代

类型错误:“账户”对象不是可迭代

我正在使用的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

回到顶部