Сравните проблемы разных типов данных

1

Я пытаюсь разобрать текстовый файл, который выглядит так:

1, инженер-электрик, 0; 90

2; механика; 0; 77

3; ученый; 1; 71

4; специалист по компьютерам; 1; 90

У вас есть возможность отделить необходимые элементы. Ниже приведен мой код:

with open('employee.txt', 'r') as employee_list:
    for employee in employee_list.readlines():
        fields = employee.split(';')
        if fields[1] == 'electrical engineer' and fields[3] >= 60:
            print(fields)

Но я получаю сообщение об ошибке:

TypeError: '> =' не поддерживается между экземплярами 'str' и 'int'

Также, если Im собирается:

if fields[1] == 'electrical engineer':
    print(fields)

Я получаю свою "электрику", ведьму ведьмы выглядит так:

['1', 'electric engineer', '0', '90\n ']

И я вижу, какие поля [3] являются строковым элементом, поэтому Im пытается:

if fields[1] == 'electrical engineer' and int(fields[3] >= 60):
    print(fields)

Но просто получая ту же ошибку

По достоинству оценят любые советы

  • 1
    try: int (fields [3] .rstrip ())> = 60 - rstrip () для удаления завершающего \ n
  • 0
    @darc Да, это помогает, вы можете добавить это как ответ, чтобы я мог закрыть этот вопрос?
Показать ещё 2 комментария
Теги:
string-comparison

1 ответ

3
Лучший ответ

split метод возвращает список строк. fields[3] - это строка. Вы должны преобразовать его в int. Пытаться:

int(fields[3].rstrip()) >= 60 

- rstrip() чтобы удалить \n трейлинг

Ещё вопросы

Сообщество Overcoder
Наверх
Меню