Проверка имени контакта в python - PullRequest
0 голосов
/ 01 апреля 2020

Предположим, у меня есть три поля в моем листе CSV:

Условия:

1) If contact Name is not given then the other two will also be not given.    
2) if contact Name is given then:

   a) Both the values would be given
   b) one of the values from Contact Number and Contact Email would be given

Возможный сценарий ios:

Case 1:
   Contact Name             Contact Number                 Contact Email
     Adhiraj                  Blank                         adhi@gmail.com
     Adhiraj                  9999999999                    Blank

Выход 1: Это не должно выдавать ошибку, поскольку это уникальный контакт.

Case 2: 
  Contact Name              Contact Number                Contact Email
     Adhiraj                  9819999999                    adhi@gmail.com
     Adhiraj                  9999999999                    adhi@gmail.com

Выход 2: Это должно привести к ошибке в качестве первого конфликты входа и второго входа.

Case 3:
  Contact Name              Contact Number                Contact Email
     Adhiraj                  9819999999                   Blank
     Adhiraj                  9999999999                   Blank

Выход 3 : нет ошибок

Case 4:
  Contact Name              Contact Number                  Contact Email
     Adhiraj                  Blank                          adhi@gmail.com
     Adhiraj                  Blank                          raj@gmail.com

Выход 4 : нет ошибок

Case 5:
  Contact Name              Contact Number                Contact Email
     Adhiraj                  9819999999                   Blank
     Adhiraj                  9819999999                   Blank

** Выход 5 **: Ошибка

Case 6:
  Contact Name              Contact Number                Contact Email
     Adhiraj                  9819999999                   Blank
     Adhiraj                  9819999999                   Blank
     Raman                    9819999999                   Blank

Выход 6 : Ошибка для третьего ряда

Итак, это были комбинации, которые я мог Подумайте об этой постановке задачи.

Возможные обходные пути:

  1. Можем ли мы иметь словарь с ключами как Имя контакта - Контактный номер - Обратитесь по электронной почте и сравните все записи, которые встречаются на листе, с записями в словаре.

  2. Для создания двух отдельных словарей для обоих Контактный номер * 105 3 * и Контактный адрес электронной почты .

Если кто-то может предложить также некоторые решения. Я полностью сбит с толку?

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете решить это с помощью указания или списка или, что лучше, с помощью базы данных (SQL, Нет SQL).

dict: как вы знаете, у вас нет уникальных ключей. Вы можете решить эту проблему, выдав уникальные идентификаторы или сделав свой ключ комбинацией значений столбца. Хотя это может стать грязным. В общем, я не вижу причины, по которой вам нужен ключ.

список: массив будет в порядке, если вы ищете простое решение.

SQL, № SQL: запросы к базе данных оптимизированы для этого и являются наиболее чистым решением. Первое решение, которое вам все равно нужно записать в файл et c.


Пример со списком:

my_list = [
  {"name": "Albert", "number": 1234, "email": None},
  {"name": "Albert", "number": 1234, "email": "Albert@emailprovider.com"}
]

def check_number_identical(my_list):
  for user1 in my_list:
    for user2 in my_list:
      if user1["number"] == user2["number]:
        return True
  return False
...