code: def _apply_default_values(catalog, default_values):
      
  
      for field, default_value in iteritems(default_values):
          class_metadata = field.split("_")[0]
          field_json_path = field.split("_")[1:]
  
          # valores default de catálogo
          if class_metadata == "catalog":
              _set_default_value(catalog, field_json_path, default_value)
  
          # valores default de dataset
          elif class_metadata == "dataset":
              for dataset in catalog["dataset"]:
                  _set_default_value(dataset, field_json_path, default_value)
  
          # valores default de distribución
          elif class_metadata == "distribution":
              for dataset in catalog["dataset"]:
                  for distribution in dataset["distribution"]:
                      _set_default_value(
                          distribution, field_json_path, default_value)
  
          # valores default de field
          elif class_metadata == "field":
              for dataset in catalog["dataset"]:
                  for distribution in dataset["distribution"]:
  
                      # campo "field" en una "distribution" no es obligatorio
                      if distribution.get("field"):
                          for field in distribution["field"]:
                              _set_default_value(
                                  field, field_json_path, default_value)
docs: Aplica valores default a los campos de un catálogo.
  
      Si el campo está vacío, aplica el default. Si tiene un valor, deja el valor
      que estaba. Sólo soporta defaults para las siguientes clases:
          catalog
          dataset
          distribution
          field
  
      Args:
          catalog (dict): Un catálogo.
          default_values (dict): Valores default para algunos de los campos del
              catálogo.
              {
                  "dataset_issued": "2017-06-22",
                  "distribution_issued": "2017-06-22"
              }