code: def get_sub_dict(data_dict, key_list, default_value='default_value'):
      
      if not isinstance(data_dict, dict):
          raise TypeError('data_dict should be dict, but we got {}'.format(type(data_dict)))
      
      if not isinstance(key_list, list):
          raise TypeError('key_list should be list, but we got {}'.format(type(key_list)))
      
      sub_dict = dict()
      for item in key_list:
          sub_dict.update({item: data_dict.get(item, default_value)})
      return sub_dict
docs: 从字典中提取子集
  
      :param:
          * data_dict: (dict) 需要提取子集的字典
          * key_list: (list) 需要获取子集的键列表
          * default_value: (string) 当键不存在时的默认值，默认为 default_value
  
      :return:
          * sub_dict: (dict) 子集字典
  
      举例如下::
  
          print('--- get_sub_dict demo---')
          dict1 = {'a': 1, 'b': 2, 'list1': [1,2,3]}
          list1 = ['a', 'list1', 'no_key']
          print(get_sub_dict(dict1, list1))
          print(get_sub_dict(dict1, list1, default_value='new default'))
          print('---')
  
      执行结果::
  
          --- get_sub_dict demo---
          {'a': 1, 'list1': [1, 2, 3], 'no_key': 'default_value'}
          {'a': 1, 'list1': [1, 2, 3], 'no_key': 'new default'}
          ---