2017-01-13 9 views
-1

を理解することはできませんが、ここでは関数内のコードの塊です:Pythonは:だから、この構文エラー

 print('Printing current values ...') 

     for key, modbusObject in jsonDict.items(): 
      print("Object {} contains value {} and timestamp {}".format(key, modbusObject.value, modbusObject.timestamp)) 

     print('Writing data for loop number '+str(i)+' ...') 

     # server.send_message_to_all(jsonDict) 
     #print('ho ho ho') 
     i += 1   

     cmd = raw_input('Change json data (y/n) ? --type \'exit\' to quit-- : ') 

このすべては、try ... except文にネストされています。私がi + = 1 - >の代わりに置いたものがexemple print( 'ho ho ho')のために 'SyntaxError:invalid syntax'として拒否されます。

私は2日間、この上で立ち往生していると、このエラーを誘発すること、ここで何が起こっているかを把握することはできません...

EDIT:より多くのコード、要求通り:

def new_client(client, server): 

print("New client connected and was given id %d" % client['id']) 
server.send_message_to_all('hello foo') 

# global jsonDict 
# global i 

while True: 

    print('Currently connected clients : ') 

    try: 
     for key, modbusObject in jsonDict.items(): 
      for case in switch(key): 
       if case("coil1000"): 
        if(i % 2 == 0): 
         modbusObject.value = 1 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1001"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 1 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1002"): 
        if(i % 2 == 0): 
         modbusObject.value = 1 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1008"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 1 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1009"): 
        if(i % 2 == 0): 
         modbusObject.value = 1 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1010"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 1 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("coil1011"): 
        if(i % 2 == 0): 
         modbusObject.value = 1 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1000"): 
        if(i % 2 == 0): 
         modbusObject.value = 127 
        else: 
         modbusObject.value = 365 
        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1001"): 
        if(i % 2 == 0): 
         modbusObject.value = 8350 
        else: 
         modbusObject.value = 4633 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1002"): 
        if(i % 2 == 0): 
         modbusObject.value = 20 
        else: 
         modbusObject.value = 15 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1003"): 
        if(i % 2 == 0): 
         modbusObject.value = 40 
        else: 
         modbusObject.value = 10 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1025"): 
        if(i % 2 == 0): 
         modbusObject.value = 6 
        else: 
         modbusObject.value = 3 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1034"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 5 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break                                       
       if case("inh1035"): 
        if(i % 2 == 0): 
         modbusObject.value = 162 
        else: 
         modbusObject.value = 50 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1036"): 
        if(i % 2 == 0): 
         modbusObject.value = 40 
        else: 
         modbusObject.value = 20 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("inh1037"): 
        if(i % 2 == 0): 
         modbusObject.value = 50 
        else: 
         modbusObject.value = 25 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break            
       if case("in1000"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 50 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1001"): 
        if(i % 2 == 0): 
         modbusObject.value = 100 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1002"): 
        if(i % 2 == 0): 
         modbusObject.value = 40 
        else: 
         modbusObject.value = 37 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1014"): 
        if(i % 2 == 0): 
         modbusObject.value = 350 
        else: 
         modbusObject.value = 221 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1015"): 
        if(i % 2 == 0): 
         modbusObject.value = 200 
        else: 
         modbusObject.value = 16 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1018"): 
        if(i % 2 == 0): 
         modbusObject.value = 1000 
        else: 
         modbusObject.value = 1246 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break                    
       if case("in1021"): 
        if(i % 2 == 0): 
         modbusObject.value = 2000 
        else: 
         modbusObject.value = 1432 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1086"): 
        if(i % 2 == 0): 
         modbusObject.value = 0 
        else: 
         modbusObject.value = 1 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1094"): 
        if(i % 2 == 0): 
         modbusObject.value = 1 
        else: 
         modbusObject.value = 0 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1102"): 
        if(i % 2 == 0): 
         modbusObject.value = 3000 
        else: 
         modbusObject.value = 50 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
        break 
       if case("in1104"): 
        if(i % 2 == 0): 
         modbusObject.value = 100 
        else: 
         modbusObject.value = 3 

        modbusObject.timestamp = dumps(datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"), default=json_serial) 
       if case(''): 
        pass 

     print('Printing current values ...') 

     for key, modbusObject in jsonDict.items(): 
      print("Object {} contains value {} and timestamp {}".format(key, modbusObject.value, modbusObject.timestamp)) 

     print('Writing data for loop number '+str(i)+' ...') 

     # server.send_message_to_all(jsonDict) 
     #print('ho ho ho') 
     i += 1   

     cmd = raw_input('Change json data (y/n) ? --type \'exit\' to quit-- : ') 

     if cmd != '':  
      if cmd.lower() == 'exit': 
       exit() 
      elif cmd.lower() == 'y': 
       i += 1 
      else: 
       pass 

    except Exception as e: 
     traceback.print_exc() 
    finally: 
     time.sleep(8) 

NB:

print("New client connected and was given id %d" % client['id']) 
server.send_message_to_all('hello foo') 

while True: 

ブロックは正しくインデントされていますが、コピー/ペーストの結果ではないようです。私が使用

スイッチ...ケース代替はhere

+1

タブとスペースを混同して、目に見えない字下げエラーが発生することがありますか? – RemcoGerlich

+0

実際のエラーを投稿することはできますか?たとえば、次のようなエラーメッセージが表示されます。行番号など – hansaplast

+0

悲しいことに、すべてが完全に配置されています。 –

答えて

0

問題がスペースにインデントを変換した後、固定されたからです。皆さんのお手伝いをありがとうございます。