对于标签 Python Tkinter 中的语句

For statement in label Python Tkinter

我想用 Tkinter 库显示来自 Facebook 的字典中的所有结果以在 Python 中添加标签。标签仅显示第一条或最后一条记录。我正在使用 for 循环。 这是我的代码:

def loopInLabel(self, newsfeedData):
    for item in newsfeedData:
        try:
            a = ("Name: " + item['name'] + '\n' + "Message: " + item['message'] + '\n' + "Description: " + item['description'] + '\n')
            return a
        except KeyError:
            pass

并在标签中显示

def facebookEvent(self, label):
    newsfeed = F.get('/me/home', {'fields':'name,description,message'})
    newsfeedData = newsfeed["data"]
    label.config(text=self.loopInLabel(newsfeedData))

当我用普通的 print() 打印到控制台时一切正常

如果您尝试在单个标签中同时显示所有新闻提要项目,请不要 return 在循环中。将项目附加到列表中,并在完成后 return 整个事情。

def loopInLabel(self, newsfeedData):
    lines = []
    for item in newsfeedData:
        try:
            a = ("Name: " + item['name'] + '\n' + "Message: " + item['message'] + '\n' + "Description: " + item['description'] + '\n')
            lines.append(a)
        except KeyError:
            pass
    return " | ".join(lines)