Как разбить номер карты по 4 знака и выводить первые 6 и последние 4 цифры номера, а вместо остальных звездочки?
Как разбить номер карты по 4 знака и выводить первые 6 и последние 4 цифры номера, а вместо остальных звездочки? Например: Visa Platinum 7000 79** **** 6361
[{'date': '07.12.2019 06:17:14', 'description': 'Перевод организации', 'from': 'Visa Classic 2842878893689012', 'to': 'Счет 35158586384610753655', 'operationAmount': {'amount': '48150.39', 'currency': {'name': 'USD', 'code': 'USD'}}}, {'date': '19.11.2019 09:22:25', 'description': 'Перевод организации', 'from': 'Maestro 7810846596785568', 'to': 'Счет 43241152692663622869', 'operationAmount': {'amount': '30153.72', 'currency': {'name': 'руб.', 'code': 'RUB'}}}]
номер карты под ключом from
Ответы (2 шт):
Автор решения: Oopss
→ Ссылка
d={'date': '07.12.2019 06:17:14', 'description': 'Перевод организации', 'from': 'Visa Classic 2842878893689012',
'to': 'Счет 35158586384610753655', 'operationAmount': {'amount': '48150.39', 'currency': {'name': 'USD', 'code': 'USD'}}}
print(d['from'].split()[2][:6]+'***'+d['from'].split()[2][-4:])
Вывод:
284287***9012
Автор решения: bilal
→ Ссылка
card = "Visa Classic 2842878893689012"
card_number = card.split()[-1]
private_number = card_number[:6] + (len(card_number[6:-4]) * '*') + card_number[-4:]
chunks, chunk_size = len(private_number), len(private_number)//4
print(" ".join([ private_number[i:i+chunk_size] for i in range(0, chunks, chunk_size) ]))
Вывод: 2842 87** **** 9012