diff --git a/aidge_core/show_graphview.py b/aidge_core/show_graphview.py
index 14bb6c3e9a4c7be1e1aecee02a04a5dc42e0a5d4..cc4d7bc722fdfb99f77556b6c66265ca2125d142 100644
--- a/aidge_core/show_graphview.py
+++ b/aidge_core/show_graphview.py
@@ -58,20 +58,36 @@ def _create_dict(ordered_nodes : List[aidge_core.Node], write_trainable_params_e
                          'nb_outputs' : node.get_operator().nb_outputs()}
 
             inputs = []
-            for input_idx in range(node.get_operator().nb_inputs()):
-                input_dict = {'dims' : node.get_operator().get_input(input_idx).dims(),
-                              'data_type' : str(node.get_operator().get_input(input_idx).dtype()),
-                              'data_format' : str(node.get_operator().get_input(input_idx).dformat())}
-                inputs.append(input_dict)
+            if node.get_operator().nb_inputs() > 0:
+                for input_idx in range(node.get_operator().nb_inputs()):
+                    if node.get_operator().get_input(input_idx) is not None:
+                        input_dict = {'dims' : node.get_operator().get_input(input_idx).dims(),
+                                    'data_type' : str(node.get_operator().get_input(input_idx).dtype()),
+                                    'data_format' : str(node.get_operator().get_input(input_idx).dformat())}
+                    
+                    elif node.get_operator().get_input(input_idx) is None:
+                        input_dict = {'dims' : None,
+                                    'data_type' : None,
+                                    'data_format' : None}
+
+                    inputs.append(input_dict)
 
             node_dict['inputs'] = inputs
 
             outputs = []
-            for output_idx in range(node.get_operator().nb_outputs()):
-                output_dict = {'dims' : node.get_operator().get_output(output_idx).dims(),
-                               'data_type' : str(node.get_operator().get_output(output_idx).dtype()),
-                              'data_format' : str(node.get_operator().get_output(output_idx).dformat())}
-                outputs.append(output_dict)
+            if node.get_operator().nb_outputs() > 0:
+                for output_idx in range(node.get_operator().nb_outputs()):
+                    if node.get_operator().get_output(output_idx) is not None:
+                        output_dict = {'dims' : node.get_operator().get_output(output_idx).dims(),
+                                    'data_type' : str(node.get_operator().get_output(output_idx).dtype()),
+                                    'data_format' : str(node.get_operator().get_output(output_idx).dformat())}
+                    
+                    elif node.get_operator().get_output(output_idx) is None:
+                        output_dict = {'dims' : None,
+                                    'data_type' : None,
+                                    'data_format' : None}
+
+                    outputs.append(output_dict)
 
             node_dict['outputs'] = outputs
 
@@ -199,6 +215,8 @@ def gview_to_json(gview : aidge_core.GraphView, json_path : Path, write_trainabl
     :type params_file_format: str, optional
     """
 
+    json_path = Path(json_path)
+
     if not json_path.suffix:
         if not json_path.is_dir():
             json_path.mkdir(parents=True, exist_ok=True)