我interrating通過JSON的線,並試圖創造所有以獨特的playerID發生事件的解釋,但我不斷收到錯誤AttributeError: 'collections.defaultdict' object has no attribute 'append'
。嘗試在JSON
我正在使用的代碼如下:
import json, csv, sys
from collections import defaultdict, Counter
lastTimeByPlayer = defaultdict(int)
uniquePlayerID = defaultdict(list)
lasttime = 0
totalCircuits = 0
playerID = 0
allCircuitsByUniquePlayerID = defaultdict(lambda : defaultdict(int))
for line in infile:
datum = json.loads(line)
time = int(datum['timestamp'])
try:
pids = list(datum['playspace_ids'])
except:
pids = []
for player in pids:
if (time - lastTimeByPlayer[player]) > int(sys.argv[1]): #sys args is a set interval "dead time" interval that indicates a new player has arrived
playerID = playerID +1
uniquePlayerID[player].append(playerID)
lastTimeByPlayer[player] = time
if datum['key'] == "MakeCircuitCreated":
allCircuitsByUniquePlayerID[playerID].append(time)
我覺得它是與我在如何創建allCircuitsByUniquePlayerID[playerID]
鍵的每個實例,但我真的不知道。在此先感謝
由於erorr是allCircuitsByUniquePlayerID,你不應該表明是如何定義的? –
抱歉錯過了,當我在複製代碼 – Mike
OK,讓字典的每個元素本身就是一個defaultdict。那麼爲什麼你使用'append'?你期望發生什麼? –