Вы пытаетесь найти строку ввода в списке словарей:
if search in counties:
print_county(county)
Она всегда будет возвращать false, поэтому будет запрошен следующий ввод.Мне кажется, что вы хотели что-то вроде этого:
def search_counties(counties):
county_names = [c.county.lower() for c in counties]
while True:
search = input('Search: ').lower()
if search in ('q' ,'quit'):
sys.exit()
if search in county_names:
print_county(county)
Обновление:
Обновлен код, учитывающий вашу структуру county
как:
{
"count": int(child_count),
"poverty": float(percent),
"median": int(median),
"county": county_name
}