Всем добрый день.
Подскажите пожалуйста.
Уже совсем голова не варит под конец дня.
У меня проект . Я с помощью MySQLdb получаю номера телефонов.
Но получаю их в формате кортеж в кортеже.
Если номер начинается с 7, то нужно заменить её на 8.
Заменить надо с помощью регулярного выражения.
Номеров может быть сколько угодно.
Скорее всего надо перебрать их при помощи цикла.
Но из-за дурацкого синтаксиса кортежа все номера выглядят так:
(('8906-------',),('7905-------',),('754-------',),)
Регулярное выражение для замены циферки я сделала:
re.sub(r'^7', r'8', <номер>)
НО....
Чтобы изменить начало номера, оно должно начинаться с цифры ,а не со скобочек, как он выглядит с кортеже.
Для получения "чистого" номера используются индексы.
То есть выглядит это так:
d = (('8906-------',),('7905-------',),('7549-------',),)
x = (d[2][0])
print(x)
rep = re.sub(r'^7', r'8', x)
print(rep)
Но это пример на обработки только одного номера.
А мне нужны все.
Как сделать правильный цикл?
Пожалуйста, подскажите.
Пробовала так:
d = (('8906-------',),('7905-------',),('7549-------',),)
list(d)
i = 0
for i in d:
if d[i][0] == r'^7':
replacement = re.sub(r'^7', r'8', i)
i = i+1
но получаю вполне ожидаемую ошибку
TypeError: tuple indices must be integers, not tuple
Как же тогда обойти все номера?