def wrap_star_digger(item, type_str, data_name='Value'):
    """
    code used to extract data from Bing's wrap star
    :param item: wrap star obj
    :param type_str: target type string
    :param data_name: target data label, might be "Entities", "Properties", 'Value'
    :return: list of all matched target, arranged in occurance
    """
    ret = []
    if type(item) == dict:
        if 'Type' in item and item['Type'] == type_str and data_name in item:  # 'Business.Consumer_Product.Description'
            if len(item[data_name]) > 1:
                # print 'length error!!!!!!!!!!!'
                pass
            return item[data_name]
        else:
            for k in item:
                sub_ret = wrap_star_digger(item[k], type_str, data_name)
                if sub_ret:
                    ret.extend(sub_ret)
    elif type(item) == list:
        for i in item:
            sub_ret = wrap_star_digger(i, type_str, data_name)
            if sub_ret:
                ret.extend(sub_ret)
    return ret