В python проверьте, находится ли элемент списка в формате mo / dd / yy? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть список данных:

['12/43/45', 'name', 'fg34534543', 'SOME DESCRIPTION', '2', '4.00', '2.00', 'y', '7.00', '342.00', 'name']

Мне нужно проверить, имеет ли первый элемент формат мм / дд / гг. Поскольку фактические даты будут меняться с каждым списком, и было бы нецелесообразно сверять его со списком всех дат с начала времени до настоящего времени, как я могу выполнить sh это?

Ответы [ 2 ]

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

Вы можете использовать пакет datetime для проверки поля даты:

In [102]: def validate(date_text):
     ...:     try:
     ...:         datetime.datetime.strptime(date_text,'%m/%d/%y')
     ...:     except:
     ...:         raise ValueError("Incorrect data format, should be mm/dd/yy")
     ...:
newlist= ['12/34/45', 'name', 'fg34534543', 'SOME DESCRIPTION', '2', '4.00', '2.00', 'y', '7.00', '342.00', '
     ...: name']

In [105]: validate(newlist[0])

ValueError: Incorrect data format, should be mm/dd/yy

Это выдает ошибку, если поле не является действительной датой.

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

Вы можете использовать регулярные выражения, например,

import re

if re.match(r'^\d\d/\d\d/\d\d$', data[0]):
   # do something

. \d соответствует любым di git, ^ и $, отмечая начало и конец строки соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...