Problem:
I have a very simple problem where I need to update the one date(either origDate or destDate) to another(either origDate or destDate) if anyone out of two is None, Empty or Non-Exists and if both of them do not exists then set both as None.
I am looking for a pythonic way to achieve this. My current code works fine but it is verbose
Example Input:
1. origin_dest_date = {
"originDate": "2019-06-30 23:59:00.000",
"destDate": None
}
2. origin_dest_date = {
"originDate": "2019-06-30 23:59:00.000"
}
3. origin_dest_date = {
"originDate": ""
}
Output:
1. origin_dest_date = {
"originDate": "2019-06-30 23:59:00.000",
"destDate": "2019-06-30 23:59:00.000"
}
2. origin_dest_date = {
"originDate": "2019-06-30 23:59:00.000",
"destDate": "2019-06-30 23:59:00.000"
}
- origin_dest_date = {
"originDate": None, "destDate": None }
My Code:
from dateutil.parser import parse
origin_dest_date = {
"originDate": "2019-06-30 23:59:00.000",
"destDate": None
}
isoriginDate = False
isdestDate = False
if 'originDate' in origin_dest_date:
isoriginDate = True
if origin_dest_date['originDate'] is not None and \
not origin_dest_date['originDate'] == '':
parse(origin_dest_date['originDate'])
if origin_dest_date['originDate'] == '':
origin_dest_date['originDate'] = None
if 'destDate' in origin_dest_date:
isdestDate = True
if origin_dest_date['destDate'] is not None and \
not origin_dest_date['destDate'] == '':
parse(origin_dest_date['destDate'])
if origin_dest_date['destDate'] == '':
origin_dest_date['destDate'] = None
if isoriginDate and not isdestDate:
origin_dest_date['destDate'] = origin_dest_date['originDate']
elif not isoriginDate and isdestDate:
origin_dest_date['originDate'] = origin_dest_date['destDate']
elif isoriginDate and origin_dest_date['originDate'] is None and \
isdestDate and \
origin_dest_date['destDate'] is not None:
origin_dest_date['originDate'] = origin_dest_date['destDate']
elif isdestDate and \
origin_dest_date['destDate'] is None and \
isoriginDate and \
origin_dest_date['originDate'] is not None:
origin_dest_date['destDate'] = origin_dest_date['originDate']
elif not isoriginDate and not isdestDate:
origin_dest_date['originDate'] = None
origin_dest_date['destDate'] = None
print(origin_dest_date)
d = odd.get('originDate') or odd.get('destDate'); odd = {'originDate': d, 'destDate': d}…?