Присвоить переменным определенное значения из строки. Python. Пасинг
В список попадают строки следующего характера (Название компании + количество сотрудников):
- Genesis 800 сотрудников
- Astound Commerce от 1000 сотрудников
- Innovecs от 500 сотрудников
- Master of Code Global 200 сотрудников
- ...
На выходе нужно получить:
- name = Название компании (1,2,3,4 слова)
- employees = Количество сотрудников (только цифра)
Получаю список, разбиваю его на части:
for j in urls:
driver.get(j['href'])
company_info = driver.find_element_by_xpath("//div[@class='company-info']").text
name = company_info.split()
employees = company_info.split()
Дальше столкнулся со сложностью присвоит разное к-во элементов переменной и найти определенный элемент(цифру), так как она в разных строках на разном месте.
Может кто сталкивался?
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
Если данные в строках чётко структурированы, и вы можете гарантировать отсутствие неправильных строк - вам подойдёт следующий код. В противном случае он требует дополнительной проверки на "правильность" строки
# просто метод ввода, используемый мной для проверки
a = """ - Genesis 800 сотрудников
- Astound Commerce от 1000 сотрудников
- Innovecs от 500 сотрудников
- Master of Code Global 200 сотрудников""".split('\n')
for company_info in a:
# если в начале строки нет символа "-", то срез имеет вид [:-2]
name = ' '.join(company_info.split()[1:-2])
employees = int(company_info.split()[-2])
print(f'{name} : {employees}')
Результат:
Genesis : 800
Astound Commerce от : 1000
Innovecs от : 500
Master of Code Global : 200