为什么python字典是空的?

为什么python字典是空的?,python,dictionary,Python,Dictionary,我有一个函数,它运行一个列表,然后加载一个字典。 它在函数中输出良好,但返回dict为空 95 def getAttachmentDict(messageIds): 96 messageTable = defaultdict(list) 97 for id in messageIds: 98 uri = "/message/" + id 99 res = getMessages(uri) 100 doc = xml.dom

我有一个函数,它运行一个列表,然后加载一个字典。 它在函数中输出良好,但返回dict为空

 95 def getAttachmentDict(messageIds):
 96     messageTable = defaultdict(list)
 97     for id in messageIds:
 98         uri = "/message/" + id
 99         res = getMessages(uri)
100         doc = xml.dom.minidom.parse(res)
101         idUrl = doc.getElementsByTagName("url")
102         alist = []
103         for i in idUrl:
104             urlData = i.childNodes[0].nodeValue
105             alist.append(urlData)
106         messageTable[id] = alist
107     print "\n"
108     for key, value in messageTable.items():
109         print "Message ID: " + key 
110         print "\n".join(value) 
111     return messageTable

169         getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable
消息ID:MyUHRnzm7AXkFmiKocUjzn config-safety-report.html 消息ID:RqfljNnyz63bBpGLtL4B2D 个人报告.csv

/Work/ftpTool/acquire.py(171)main() ->打印消息表 (Pdb)n {}


您没有对返回值执行任何操作。这只是打印您调用的其他变量
messageTable

169         getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable
试试这个

169         messageTable = getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable

调用
getAttachmentDict()
时,需要将结果分配给一个名称(可以是
messageTable
,也可以是您想要使用的任何其他名称)。例如:

169         messageTable = getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable

令人惊叹的。那很好用。现在我的问题是,为什么我可以返回一个列表,例如messageid,然后直接打印呢?您可能正在将messageid作为参数传递,并修改它引用的列表