problème de syntaxe avecif else
Je suis novice en python. Je fais ce bout de code pour calculer le nombre de registre des fonction Modbus Pour cela j'ai besoin de faire une vérification qui est la suivant:
Si funcCode est différent de 5 et 6 faire ceci: r.append (p ['ModbusADURequest'] [1] .startAddr) sinon faire r.append (p ['ModbusADURequest'] [1]. RegisterAddr ) mais j'ai une erreur:
Citation:
File" parserz.py ", ligne 868 else: ^ SyntaxError: syntaxe invalide
ça doit être une erreur d'indentation ou autre mais je vois pas où.
Une idée s'il vous plait ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| def reg_no_list(s):
r = []
for p in s:
if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
if p.haslayer('ModbusADURequest'):
try:
r.append(p['ModbusADURequest'][1].startAddr)
except AttributeError:
pass
return r
else:
r.append(p['ModbusADURequest'][1]. registerAddr)
except AttributeError:
pass
return r
def reg_val_list(s):
v = []
for p in s:
if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
if p.haslayer('ModbusADUResponse'):
try:
v += p['ModbusADUResponse'][1].registerVal
except AttributeError:
pass
return v
else:
v += p['ModbusADUResponse'][1]. registerValue
except AttributeError:
pass
return v |