I have the following piece of code:
def is_it_bad(word):
    try:
        res = next((item for item in all_names if str(word) in str(item["name"])))
    except:
        res = {'name':word, 'gender':2}
return res
It looks like It is blocking my async function that is calling is_it_bad. I'm not very familiar with async, is there any way to make this function non-blocking?
Function calling is_it_bad:
async def get_genders_by_dict(res):
    letters = re.compile('[^a-zA-Z\ ]')
    fname = unidecode(str(letters.sub('', res['full_name'])).lower())
    fname = letters.sub('', res['username']).lower() + ' ' + fname + ' ' + fname.replace(' ', '')
    fname = fname.split(' ')    
    genders = []
    for j in fname:
        if len(j) > 2:
            print(j)
            genders.append(is_it_bad_tst('_' + j + '_')['gender'])
            for k in genders:
                if int(k) != 2:
                    gender = k
                    print('GOOD: ', '_' + j + '_', gender)
async def get_genders_by_dict_main(loop):
    tasks = [get_genders_by_dict(res) for res in results]
    await asyncio.gather(*tasks)
loop = asyncio.get_event_loop()
loop.run_until_complete(get_genders_by_dict_main(loop))
 
     
    