2017-07-01 52 views
0

在這個函數裏面,對於j,我枚舉(數據)'我有一個循環'用於反向(範圍(j))中的g:' 並且這個循環附加到listx。爲什麼我的函數在Python中跳過代碼行?

爲了測試我得到我把打印(LISTX)

現在正下方追加回路我有打印(LISTX)有意義的數據,但它不工作。它根本不打印。我也嘗試過打印(「你好」)來刪除任何變量,但它也不打印「你好」。

這是什麼造成的?

def filter_json(input): 
    global d 
    global t 

    # open input file & load json data 
    content = open(input, "r").read() 
    data = np.array([json.loads(str(i)) for i in content.strip().split('\n') 
if i.strip()]) 

    # first extract D & T from the first line of data 
    d = int(data[0]['D']) 
    t = int(data[0]['T']) 
    listx = [] 

    for j, i in enumerate(data): 

     try: 

      if i['event_type'] == 'purchase': 

       listx = [] 
       l = Graph() 
       l.network = set() 
       l.IDDFS(i['id'], d) 

       network_list = l.network 


       for g in reversed(range(j)): 
        # if data[g]['id'] in network_list 
        listx.append(data[g]['amount']) 

       print(listx) 
       print('Hello') 


      elif i['event_type'] == 'befriend': 
      addEdge(i['id1'], i['id2']) 

      elif i['event_type'] == 'unfriend': 
      removeEdge(i['id1'], i['id2']) 


     except KeyError: 
      continue 
+0

您應該修復您的縮進。怎麼會告訴你以後的鑰匙不存在?把'print'放在'except'塊中。 –

回答

0

這意味着你在你的代碼,然後您可以在您的except忽略越來越KeyError

+0

謝謝。那就是問題所在。所以我在Keyerror內部打印(j,i),看看問題是什麼。事實證明,我在每次購買時看到「購買」的關鍵錯誤。第一個關鍵錯誤是在索引I看到的是14506,但我確定它只是每7000行代替輸出。因爲一旦輸出就暫停過程的速度越快,索引號就越小。你知道爲什麼會發生嗎? 這是一行示例: {'event_type':'purchase','timestamp':'2017-06-14 18:46:40','id':'8160','amount' :'95 .53'} – Gutsee

相關問題