2017-07-01 56 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

相关问题