code: def parse_node(self, node_json):
      node_type = self.gmeta.node_type_info[str(node_json["type"])]
      node = Node(
          node_json["id"], node_json["weight"], node_type, self.gmeta
      )
      self.nodes_cnt[int(node_json["id"]) % self.partition_num] += 1
  
      expend_type(self.node_type_weight, self.gmeta.node_type_count)
      self.node_type_weight[node_type] += float(node_json["weight"])
  
      for feature in node_json["features"]:
          name = feature["type"] + "_" + feature["name"]
          t = feature["type"]
          v = feature["value"]
  
          feature_idx = self.gmeta.node_meta[name][2]
          feature_type = self.gmeta.node_meta[name][1]
          node.set_feature(feature_type, v, feature_idx)
  
      self.nodes[node_json["id"]] = node
  
file_path: euler/euler/tools/json2partdat.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import errno
  import json
  import sys
  import struct
  from euler.tools.util import *
  from euler.tools.node import Node
  from euler.tools.edge import Edge
  from euler.tools.graph_meta import GraphMeta
  import os
label_desc: Use image node_id 4 for calling the Converter obj's underlying member method code with example usage: obj.parse_node(node_json) without return types