code: def from_json(cls, data, result=None):
          
          if data.get("type") != cls._type_value:
              raise exception.ElementDataWrongType(
                  type_expected=cls._type_value,
                  type_provided=data.get("type")
              )
  
          tags = data.get("tags", {})
  
          node_id = data.get("id")
          lat = data.get("lat")
          lon = data.get("lon")
  
          attributes = {}
          ignore = ["type", "id", "lat", "lon", "tags"]
          for n, v in data.items():
              if n in ignore:
                  continue
              attributes[n] = v
  
          return cls(node_id=node_id, lat=lat, lon=lon, tags=tags, attributes=attributes, result=result)
docs: Create new Node element from JSON data
  
          :param data: Element data from JSON
          :type data: Dict
          :param result: The result this element belongs to
          :type result: overpy.Result
          :return: New instance of Node
          :rtype: overpy.Node
          :raises overpy.exception.ElementDataWrongType: If type value of the passed JSON data does not match.