如何用日期时间对象替换 json 中的字符串值
how to replace the string value in json with a datetime object
如何将值 'today_date' 和“yesterday_date”替换为:
today_date = datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
yesterday_date = today_date - datetime.timedelta(1)
在这样的 json
中:
[{'$match': {'event_code': 'SALE', 'properties.event_data.status': 'SUCCESS', 'properties.event_data.service': {'$in': ['a', 'b', 'c', 'd']}, 'properties.event_data.transaction_date': {'$lt': 'today_date', '$gte': 'yesterday_date'}}}, {'$group': {'_id': '$properties.event_data.service', 'count': {'$sum': 1}, 'sale': {'$sum': '$properties.event_data.mrp'}}}, {'$project': {'_id': 0, 'service': '$_id', 'count': '$count', 'sale': '$sale'}}]
需要的输出是这样的:
[{'$match': {'event_code': 'SALE',
'properties.event_data.status': 'SUCCESS',
'properties.event_data.service': {'$in': ['Mobile',
'DTH',
'Pancard',
'RBLMR']},
'properties.event_data.transaction_date': {'$lt': datetime.datetime(2018, 6, 14, 0, 0),
'$gte': datetime.datetime(2018, 6, 13, 0, 0)}}},
{'$group': {'_id': '$properties.event_data.service',
'count': {'$sum': 1},
'sale': {'$sum': '$properties.event_data.mrp'}}},
{'$project': {'_id': 0,
'service': '$_id',
'count': '$count',
'sale': '$sale'}}]
考虑到 JSON 格式,您需要为您的日期创建一个对象:
{'$lt': { 'year' : 2018, 'month' : 6, 'day' : 14, 'hour' : 0, 'minute' : 0 } }
接听伙伴接电话
datetime.datetime
使用 JSON 日期对象中的值。
我现在可以解决了
def value_replace(b):
dict_list=[]
for i in b:
# print(type(i),i)
for key,value in i.items():
if type(value) is dict:
# print(type(value))
dict_list.append(value)
else:
if value=='today_date':
# print(key,value)
i[key]=datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
elif value=='yesterday_date':
# print(value)
i[key]=datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)-datetime.timedelta(1)
if len(dict_list)!=0:
value_replace(dict_list)
如何将值 'today_date' 和“yesterday_date”替换为:
today_date = datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
yesterday_date = today_date - datetime.timedelta(1)
在这样的 json
中:
[{'$match': {'event_code': 'SALE', 'properties.event_data.status': 'SUCCESS', 'properties.event_data.service': {'$in': ['a', 'b', 'c', 'd']}, 'properties.event_data.transaction_date': {'$lt': 'today_date', '$gte': 'yesterday_date'}}}, {'$group': {'_id': '$properties.event_data.service', 'count': {'$sum': 1}, 'sale': {'$sum': '$properties.event_data.mrp'}}}, {'$project': {'_id': 0, 'service': '$_id', 'count': '$count', 'sale': '$sale'}}]
需要的输出是这样的:
[{'$match': {'event_code': 'SALE',
'properties.event_data.status': 'SUCCESS',
'properties.event_data.service': {'$in': ['Mobile',
'DTH',
'Pancard',
'RBLMR']},
'properties.event_data.transaction_date': {'$lt': datetime.datetime(2018, 6, 14, 0, 0),
'$gte': datetime.datetime(2018, 6, 13, 0, 0)}}},
{'$group': {'_id': '$properties.event_data.service',
'count': {'$sum': 1},
'sale': {'$sum': '$properties.event_data.mrp'}}},
{'$project': {'_id': 0,
'service': '$_id',
'count': '$count',
'sale': '$sale'}}]
考虑到 JSON 格式,您需要为您的日期创建一个对象:
{'$lt': { 'year' : 2018, 'month' : 6, 'day' : 14, 'hour' : 0, 'minute' : 0 } }
接听伙伴接电话
datetime.datetime
使用 JSON 日期对象中的值。
我现在可以解决了
def value_replace(b):
dict_list=[]
for i in b:
# print(type(i),i)
for key,value in i.items():
if type(value) is dict:
# print(type(value))
dict_list.append(value)
else:
if value=='today_date':
# print(key,value)
i[key]=datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
elif value=='yesterday_date':
# print(value)
i[key]=datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)-datetime.timedelta(1)
if len(dict_list)!=0:
value_replace(dict_list)