Я пытаюсь извлечь из базы данных следующую информацию:
- Год (один раз)
- Имена
- Ранг
Сложная часть игнорирует некоторые части при извлечении других.
База данных, из которой я пытаюсь получить информацию, выглядит в следующем формате:
Popularity in 2018
Rank Male name Number of males Female name Number of females
1 Liam 19,837 Emma 18,688
2 Noah 18,267 Olivia 17,921
3 William 14,516 Ava 14,924
4 James 13,525 Isabella 14,464
5 Oliver 13,389 Sophia 13,928
6 Benjamin 13,381 Charlotte 12,940
7 Elijah 12,886 Mia 12,642
8 Lucas 12,585 Amelia 12,301
9 Mason 12,435 Harper 10,582
10 Logan 12,352 Evelyn 10,376
import re
year = r'\d{4}'
name = r'[A-Z][a-z].*$'
rank = r'\d{1,3}'
def extract_names(f):
match_x = re.search(year, f)
match_y = re.search(name, f)
match_z = re.search(rank, f)
x = match_x.group()
y = match_y.groups()
z = match_z.groups()
def print_match(x, y=False, z=False):
if match_y and match_z:
print(x, y, z)
elif match_y:
print(x, y, 'is unranked')
else:
print("No match found for year", x)
print_match(x, y, z + ".")
Я получаюнесколько разных ошибок с несколькими разными кодами, но я хочу вытащить словарь (названный по году) и затем имя с рангом
Идея состоит в том, чтобы вытащить информацию так, чтобы яможно назвать одно имя, скажем, «Лиам», и это дает общую тенденцию за годы популярности имени Лиам.
Помогите!:)