2010-05-27 4 views
0

Я ищу, чтобы сделать что-то действительно простое. Просто конвертируйте строку, например «декабрь», в то, что я могу использовать с MySQL (например, «12»).Преобразование читаемой человеком даты в целые значения

В настоящее время я использую Dict,

month_map = { 
    'december': '12', 
    'november': '11', 
    'october': '10', 
    'september': '09', 
    'august': '08', 
    'july': '07', 
    'june': '06', 
    'may': '05', 
    'april': '04', 
    'march': '03', 
    'february': '02', 
    'january': '01' 
} 

, а затем month_map.get('december').

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

+0

Почему вы хотите получить строку? – SilentGhost

ответ

2

Это Локальнозависимый, но вы можете сделать это с strptime:

>>> import datetime 
>>> datetime.datetime.strptime('december', '%B').month 
12 
>>> datetime.datetime.strptime('january', '%B').month 
1 
+0

Спасибо. Именно то, что я искал. –

+0

@kahrn: затем выберите этот ответ, нажав на галочку под голосами ответов. – tzot

1

Одна вещь, которую вы могли бы сделать, это:

>>> datetime.datetime.strptime('december', '%B').month 
12 

'%B' будет соответствовать полное имя локали месяц.

1

В базе данных у вас обычно есть таблицы поиска, сопоставляющие строки с их ключевыми значениями (обычно ints, иногда GUID). В течение нескольких месяцев это может не быть большим делом, потому что каждый знает, что такое месяц 5, но если вы начинаете делать перевод на стороне клиента для более странных вещей, например, например, состояний сопоставления с ints, то вы делаете что-то неправильно.

Чтобы быть строго верным, БД должна иметь эту карту в таблице поиска, а затем вы должны использовать ее для выполнения переводов.

+0

Спасибо. Я буду помнить об этом. –

Смежные вопросы