11import os
22import json
3- from collections import Counter
43
54
65def validate_json_structure (data ):
76 errors = []
87
9-
108 if "board_id" in data :
119 if not isinstance (data ["board_id" ], int ):
1210 errors .append (f"'board_id' debe ser un entero, pero se encontró: { type (data ['board_id' ]).__name__ } ." )
@@ -15,13 +13,13 @@ def validate_json_structure(data):
1513 if not isinstance (data ["board_ip" ], str ):
1614 errors .append (f"'board_ip' debe ser una cadena, pero se encontró: { type (data ['board_ip' ]).__name__ } ." )
1715
18-
16+
1917 if "measurements" in data :
2018 if not isinstance (data ["measurements" ], list ):
2119 errors .append ("La clave 'measurements' debe ser una lista." )
2220 else :
2321 for measurement in data ["measurements" ]:
24- if isinstance (measurement , dict ):
22+ if isinstance (measurement , dict ):
2523 required_keys = ["id" , "name" , "type" , "podUnits" , "displayUnits" ]
2624 for key in required_keys :
2725 if key not in measurement :
@@ -40,17 +38,17 @@ def validate_json_structure(data):
4038 errors .append (f"El 'podUnits' debe ser una cadena en: { measurement } " )
4139 if "podUnits" in measurement and not isinstance (measurement ["podUnits" ], str ):
4240 errors .append (f"El 'podUnits' debe ser una cadena en: { measurement } " ) #esto se puede quitar (json 516)
43- elif not isinstance (measurement , str ):
41+ elif not isinstance (measurement , str ):
4442 errors .append ("Cada elemento en 'measurements' debe ser un objeto o una cadena (nombre de archivo)." )
4543
46-
44+
4745 if "packets" in data :
4846 if not isinstance (data ["packets" ], list ):
4947 errors .append ("La clave 'packets' debe ser una lista." )
5048 else :
5149 for packet in data ["packets" ]:
52- if isinstance (packet , dict ):
53- required_keys = ["id" , "name" , "type" ,"variable" ]
50+ if isinstance (packet , dict ):
51+ required_keys = ["id" , "name" , "type" ,"variable" ]
5452 for key in required_keys :
5553 if key not in packet :
5654 errors .append (f"Falta la clave '{ key } ' en un objeto de 'packets'." )
@@ -69,7 +67,7 @@ def validate_json_structure(data):
6967 errors .append (f"Cada elemento en 'variables' debe ser un objeto en: { packet } " )
7068 if "name" not in variable :
7169 errors .append (f"Falta la clave 'name' en un objeto de 'variables' en: { packet } " )
72- elif not isinstance (packet , str ):
70+ elif not isinstance (packet , str ):
7371 errors .append ("Cada elemento en 'packets' debe ser un objeto o una cadena (nombre de archivo)." )
7472
7573 return errors
@@ -78,19 +76,19 @@ def validate_json_structure(data):
7876
7977def validate_json_folder (folder_path ):
8078 boards_file_path = os .path .join (folder_path , "boards.json" )
81-
79+
8280 try :
8381 with open (boards_file_path , 'r' ) as boards_file :
8482 boards_data = json .load (boards_file )
8583 boards = boards_data .get ("boards" , {})
86-
87-
84+
85+
8886 board_keys = list (boards .keys ())
8987 duplicate_keys = [key for key in board_keys if board_keys .count (key ) > 1 ]
90-
88+
9189 if duplicate_keys :
9290 print (f"Error: El archivo boards.json contiene claves duplicadas: { ', ' .join (duplicate_keys )} " )
93- return
91+ return
9492
9593 except json .JSONDecodeError as e :
9694 print (f"Error al decodificar JSON en { boards_file_path } : { e } " )
@@ -99,7 +97,7 @@ def validate_json_folder(folder_path):
9997 print (f"Error al procesar el archivo { boards_file_path } : { e } " )
10098 return
10199
102-
100+
103101 for board_name , board_file_path in boards .items ():
104102 full_path = os .path .join (folder_path , board_file_path )
105103 try :
@@ -110,19 +108,14 @@ def validate_json_folder(folder_path):
110108 print (f"Errores encontrados en { full_path } para la placa '{ board_name } ':" )
111109 for error in errors :
112110 print (f"- { error } " )
113- else :
114- print (f"{ full_path } para la placa '{ board_name } ' está bien estructurado." )
111+
115112 except json .JSONDecodeError as e :
116113 print (f"Error al decodificar JSON en { full_path } : { e } " )
117114 except Exception as e :
118- print (f"Error al procesar el archivo { full_path } : { e } " )
119-
120-
115+ print (f"Error al procesar el archivo { full_path } : { e } " )
121116
122117
123- if os .path .exists ('./JSON_ADE/' ):
124- print ("La carpeta JSON_ADE existe" )
125- else :
118+ if os .path .exists ('./JSON_ADE/' ) == False :
126119 print ("La carpeta JSON_ADE no existe" )
127120if __name__ == "__main__" :
128- validate_json_folder ("./JSON_ADE/" )
121+ validate_json_folder ("./JSON_ADE/" )
0 commit comments