为什么python字典是空的?

时间:2013-01-28 03:30:05

标签: python dictionary

我有一个运行列表然后加载字典的函数。 它在函数内输出正常,但返回字典是空的吗?

 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 配置安全-report.html 消息ID:RqfljNnyz63bBpGLtL4B2D 个体report.csv

  

/Work/ftpTool/acquire.py(171)主()    - >打印messageTable   (Pdb)n   {}

2 个答案:

答案 0 :(得分:1)

你没有对返回值做任何事情。这只是打印你称为messageTable

的其他变量
169         getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable

试试这个

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

答案 1 :(得分:1)

当您致电getAttachmentDict()时,您需要将结果分配给名称(可以是messageTable或您要使用的任何其他名称)。例如:

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