这是我的note.py模块中的readall命令:
if used_prefix and cmd == "readall" and self.getAccess(user) >= 1:
try:
if notes.check(user.name) == True:
t = user.name.title()+" these are all your notes:<br><br>"
for l in notes.getall(user.name):
print(l)
for sender, message, notetime in l:
t += "From %s: %s (%s)" % (sender.title(), msg, stamp.LongTimeStampFull(notetime))
room.message(t, True)
else:
room.message("Your inbox is empty! ;D")
except:
room.message((str(sys.exc_info()[1])))
notes.getall(user.name)
相当于notes.database[user.name][:]
数据库使用列表中的列表。
每次我使用命令时,我都会在note.py
上收到此错误。
too many values to unpack (expected 3)
在线:
for sender, msg, notetime in l:
同时打印l:
['charles', 'testing this', 1260046789] ['charles', 'this is a test', 1230056545]
答案 0 :(得分:0)
根据您显示print(l)
打印内容的编辑,您的问题似乎是您希望l
拥有多个“行”(即列出的列表) ),但它没有(它是一个字符串列表)。你可以解决这个问题,但这里有一个:
for l in notes.getall(user.name):
sender, message, notetime = l
t += "From %s: %s (%s)" % (sender.title(), msg, stamp.LongTimeStampFull(notetime))
举个例子:
>>> a = ['test','test2','test3']
>>> b,c,d = a
>>> b
'test'
>>> c
'test2'
>>> d
'test3'
或者,您可以将字符串列表转换为列表列表:
>>> for b,c,d in [a]:
... print(b,c,d)
...
test test2 test3