0

リストを実行してから辞書をロードする関数があります。関数内で正常に出力されますが、戻り辞書は空ですか?

 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() -> print messageTable (Pdb) n {}

4

2 に答える 2

1

戻り値で何もしていません。これは、呼び出した他の変数を出力しているだけですmessageTable

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

代わりにこれを試してください

169         messageTable = getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable
于 2013-01-28T03:32:32.040 に答える
1

を呼び出すときはgetAttachmentDict()、結果を名前に割り当てる必要があります (これはmessageTable、 、または使用したい他の名前である可能性があります)。例えば:

169         messageTable = getAttachmentDict(messageIds)
170         pdb.set_trace()
171         print messageTable
于 2013-01-28T03:33:48.260 に答える