Извлечение списка кортежей из списка словарей, некоторые значения разделены запятыми и одинарными кавычками, а некоторые-без них
У меня есть список словарей, каждый словарь содержит:
Имя
Второе имя
Фамилия
Заглавие
Адрес
Адрес электронной почты
Программа лояльности для одного клиента. Некоторые из этих сведений могут отсутствовать
сегмент = [{'имя': 'Эльза', 'фамилия': 'Мороз', 'титул': 'Принцесса', 'адрес': '33 Касл-стрит, Лондон', 'программа лояльности': 'золото'}, {'имя': 'Анна', 'фамилия': 'Мороз', 'титул': 'Принцесса', 'программа лояльности': 'платина'}, {'имя': 'Гарри', 'отчество': 'Гарольд', 'фамилия': 'Заяц', 'название': 'Мистер', 'адрес электронной почты': 'harry.harold@hare.name", "программа лояльности": "серебро"}]
Для клиентов, у которых есть физический адрес, мне нужно извлечь список кортежей. Каждый Кортеж представляет одного клиента и содержит его должность, имя, отчество и фамилию в указанном порядке, если они определены, а также почтовый адрес.
Похоже, мой код работает.
Однако внутри каждого кортежа должны быть одинарные кавычки вокруг целого, а не отдельных частей имени клиента. Там также должны быть кавычки вокруг адреса. Запятая должна разделять адрес и полное имя.
("Принцесса Эльза Фрост", "33 Касл-Стрит, Лондон")
Что я уже пробовал:
My code is returning the right information, but the elements of a patients name are separated by commas and single quotation marks Input: def process_clients(segment): #Creating a list to contain tuples with client full name and mailing address. updated = [] #Interacting through each dictionary, which represents each client for dic in segment: newclient=[] #Adding clients with a mailing address try: add = dic["address"] except: continue #Adding, in order, the "title", "first-name", "middle-name", "last-name" and "address" of each client for data in ["title", "first-name", "middle-name", "last-name", "address"]: try: value = dic[data] newclient.append(value) #If "title", "first-name", "middle-name" or "last-name" is not present in a clients data, no action is taken except: pass #Additing the tuples with extracted client data to the created list updated.append(tuple(newclient)) return updated process_clients(segment) Output: [('Princess',' Elsa ',' Frost ', '33 Castle Street, London')]
Gerry Schmitz
Если нет других одинарных кавычек, просто удалите их все и просто добавьте по одной на каждом конце.
Заменить все "'" на "" и т.д.