Удалить акценты / диакритические знаки в форме поиска

Я не знаю, где поставить

import unicodedata

unicodedata.normalize('NFKD', text).encode('ascii', 'ignore')

здесь

Редактировать:

Я должен немедленно вставить весь код.

from BTCInput import *

class Contact:
    pass

contacts = []

def new_contact():
    print('new contact')
    new_contact = Contact()
    new_contact.name = read_text('name: ')
    new_contact.address = read_text('address: ')
    new_contact.telephone = read_text('phone: ')
    contacts.append(new_contact)

def find_contact():
    print('find contact')
    search_name = read_text('name: ')
    search_name = search_name.strip()
    search_name = search_name.lower()
    result = None
    for contact in contacts:
        name = contact.name
        name = name.strip()
        name = name.lower()
        if name.startswith(search_name):
            result = contact
            break

    if result != None:
        print(f'name: {result.name}\n'
              f'Address: {result.address}\n'
              f'phone: {result.telephone}\n')
    else:
        print('xyz')

while True:
    menu = int(input('name'))
    if menu == 1:
        new_contact()
    elif menu == 2:
        find_contact()

Итак ... Я хочу из формы поиска игнорировать диакритические знаки. Я не хочу менять код, потому что это пример из книги, которую я на самом деле читаю. Я просто хочу улучшить это.

0
задан Sevy 27 June 2019 в 00:37
поделиться

1 ответ

попробуйте этот код:

from unidecode import unidecode
def find_contact(contacts):
    print('Find contact')
    search_name = input('Enter the name: ')
    search_name = search_name.strip()
    search_name = search_name.lower()
    search_name = unidecode(search_name)
    all_contacts_name=[]
    for key,values in contacts.items():
        for contact in values:
            name = contact["name"]
            name = name.strip()
            name = name.lower()
            all_contacts_name.append(name)

    if search_name in all_contacts_name:
        print("this contact exists")

    else:
        print("this contact does not exisit")

find_contact({"contacts":[{"name":"xxxx"},{"name":"ZOLC"}]})

вывод:

Enter the name: ŻÓŁĆ
this contact exists
0
ответ дан Ghassen 27 June 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: