我想遍歷一個文本檔案中存盤的每一條邊的兩個節點,然后把每個節點值作為一個鍵,跟它相連的節點作為值存在一個串列中
文本檔案如下
1,2
1,4
1,6
1,7
1,8
1,9
2,3
3,4
4,5
5,6
7,12
8,14
10,11
10,12
10,13
10,14
14,17
15,16
16,17
17,26
18,19
18,23
18,25
19,20
20,21
21,22
22,23
23,24
24,25
24,29
25,28
27,28
27,29
27,30
27,32
27,33
29,30
30,31
30,32
32,33
代碼如下
nodes = {'1': ['3'], '2': ['3']} #給字典作了初始化
nodefile = '/home/hadoop/nodeInfo.txt'
with open(nodefile) as fb:
for line in fb:
listlink = line.rstrip().split(',')
for keys, values in nodes.items():
if listlink[0] == keys:
nodes[keys] = list(values).append(listlink[1]) #遇到鍵相同時,只把節點存盤到值串列里去
else:
nodes.setdefault(listlink[0], [listlink[1]]) #如果在字典中沒有找到與之相同的鍵,則作為一個新的鍵值對存盤進去。
print(nodes)
當運行時出現了這樣的問題:
File "/home/hadoop/pycharmproject/readnode.py", line 12, in <module>
nodes[keys] = list(values).append(listlink[1])
TypeError: 'NoneType' object is not iterable
這該如何解決
uj5u.com熱心網友回復:
list.append()回傳nonetype 所以就會報錯 先添加后賦值就可以了uj5u.com熱心網友回復:
list.append()回傳nonetype 所以就會報錯 先添加后賦值就可以了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/37620.html
標籤:Spark
上一篇:Spark Streaming
下一篇:ESXi主機告警
