def _recursive_url_find(self, item, image_list):
        """
        Recursively traverses a dictionary-like data structure for Khan Academy
        assessment items in order to search for image links in `url` data attributes,
        and if it finds any it adds them to `image_list` and rewrites `url` attribute.
        Use cases:
          - `backgroundImage.url` attributes for graphs and images

        Args:
            item (dict): KA assessment item; will be modified in place
            image_list (list): image files (File objects) found during the traversal
        Returns: None
        """

        recursive_fn = partial(self._recursive_url_find, image_list=image_list)

        if isinstance(item, list):
            list(map(recursive_fn, item))

        elif isinstance(item, dict):
            if 'url' in item:
                if item['url']:
                    item['url'], image_file = self.set_image(item['url'])
                    image_list += image_file

            for field, field_data in item.items():
                if isinstance(field_data, dict):
                    self._recursive_url_find(field_data, image_list)
                elif isinstance(field_data, list):
                    list(map(recursive_fn, field_data))