How can I rewrite following clause:
if u'января' in date_category['title']:
month = 1
elif u'февраля' in date_category['title']:
month = 2
elif u'марта' in date_category['title']:
month = 3
elif u'апреля' in date_category['title']:
month = 4
elif u'мая' in date_category['title']:
month = 5
elif u'июня' in date_category['title']:
month = 6
elif u'июля' in date_category['title']:
month = 7
elif u'августа' in date_category['title']:
month = 8
elif u'сентября' in date_category['title']:
month = 9
elif u'октября' in date_category['title']:
month = 10
elif u'ноября' in date_category['title']:
month = 11
elif u'декабря' in date_category['title']:
month = 12
It just looks ugly.
To solve this, parse your date information using the python datetime
module. It has support for locales, and will sort this out. If genitive forms are really the issue, then just map those forms to the dative, then map back on output.
To answer your actual question -
Consider that you are pairing up data with integers. If you can transform your data into the format (month, integer)
, you can drive your code with data.
for (n, month) in enumerate(u'января, feb, mar, apri, may, jun, jul, aug, sep, oct, nov, декабря'.split(', '), 1):# the parameter 1 specifies to start counting from 1. h/t @san4ez
if month in date_category['title']: return n
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With