2017-07-01 6 views
0

この関数の内部では、 'for j、iはenumerate(data)' gの逆順(範囲(j))のループを ' 'とし、このループをlistxに追加します。私は右の添付ループの下になりましプリント(LISTX)私の関数がPythonのコード行をスキップするのはなぜですか?

を置く意味のあるデータを取得していますことをテストする

私は、印刷(LISTX)を持っているが、それは動作しません。まったく印刷されません。また、print( "Hello")を使って変数を削除しようとしましたが、 "Hello"も表示されません。

この原因は何ですか?あなたは、あなたのexceptに無視し、あなたのコード内でKeyErrorを、取得している意味

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

インデントを修正する必要があります。あなたの後ろにある鍵はどうして存在しないのでしょうか? 'except'ブロックに' print'を入れてください。 –

答えて

0

+0

ありがとうございます。それが問題だ。だから私はKeyerrorの中に何の問題があるのか​​を見てみた(j、i)。すべての購入のように思えるもので、「購入」のキーエラーが出ています。最初のキーエラーは14506ですが、私はそれが7000行または何か毎回出力を置き換えると確信しています。プロセスが出力されるとプロセスが停止する速度が速いほど、インデックス番号は小さくなります。なぜそれが起こるか知っていますか? これは、次の行の例です: {'event_type': 'purchase'、 'timestamp': '2017-06-14 18:46:40'、 'id': '8160'、 'amount' :'95 .53 '} – Gutsee

関連する問題