Joining Data Sets¶
Let us perform few tasks to understand how to perform joins over multiple collections using loops and conditionals.
There are different strategies for joins.
Nested Loops
Sort Merge
Hash Join
We will be using Nested Loops approach using orders and order_items.
Build dict for one data set - orders.
Iteratively lookup into the orders data set while processing the other one - order_items
Develop a function get_daily_revenue which takes orders, order_items and order_status as arguments and return dict containing order_date and order_revenue. We need to get revenue considering only those orders which satisfy the status passed.
%run 07_preparing_data_sets.ipynb
orders[:10]
['1,2013-07-25 00:00:00.0,11599,CLOSED',
'2,2013-07-25 00:00:00.0,256,PENDING_PAYMENT',
'3,2013-07-25 00:00:00.0,12111,COMPLETE',
'4,2013-07-25 00:00:00.0,8827,CLOSED',
'5,2013-07-25 00:00:00.0,11318,COMPLETE',
'6,2013-07-25 00:00:00.0,7130,COMPLETE',
'7,2013-07-25 00:00:00.0,4530,COMPLETE',
'8,2013-07-25 00:00:00.0,2911,PROCESSING',
'9,2013-07-25 00:00:00.0,5657,PENDING_PAYMENT',
'10,2013-07-25 00:00:00.0,5648,PENDING_PAYMENT']
len(orders)
68883
order_items[:10]
['1,1,957,1,299.98,299.98',
'2,2,1073,1,199.99,199.99',
'3,2,502,5,250.0,50.0',
'4,2,403,1,129.99,129.99',
'5,4,897,2,49.98,24.99',
'6,4,365,5,299.95,59.99',
'7,4,502,3,150.0,50.0',
'8,4,1014,4,199.92,49.98',
'9,5,957,1,299.98,299.98',
'10,5,365,5,299.95,59.99']
len(order_items)
172198
def get_orders_dict(orders, order_status):
orders_dict = {}
for order in orders:
order_details = order.split(',')
if order_details[3] == order_status:
orders_dict[int(order_details[0])] = order_details[1]
return orders_dict
list(get_orders_dict(orders, 'COMPLETE').items())[:10]
[(3, '2013-07-25 00:00:00.0'),
(5, '2013-07-25 00:00:00.0'),
(6, '2013-07-25 00:00:00.0'),
(7, '2013-07-25 00:00:00.0'),
(15, '2013-07-25 00:00:00.0'),
(17, '2013-07-25 00:00:00.0'),
(22, '2013-07-25 00:00:00.0'),
(26, '2013-07-25 00:00:00.0'),
(28, '2013-07-25 00:00:00.0'),
(32, '2013-07-25 00:00:00.0')]
get_orders_dict(orders, 'COMPLETE')[3]
'2013-07-25 00:00:00.0'
get_orders_dict(orders, 'COMPLETE').get(3)
'2013-07-25 00:00:00.0'
len(get_orders_dict(orders, 'COMPLETE'))
22899
orders_dict = get_orders_dict(orders, 'COMPLETE')
order_item = order_items[0]
order_item
'1,1,957,1,299.98,299.98'
int(order_item.split(',')[1]) # order_id
1
int(order_item.split(',')[1]) in orders_dict
False
3 in orders_dict
True
def get_daily_revenue(orders, order_items, order_status):
orders_dict = get_orders_dict(orders, order_status) # dict with order_id as key and order_date as value
daily_revenue = {} # Initializing empty dict to have date and corresponding revenue
for order_item in order_items:
# Processing all order_items
order_item_order_id = int(order_item.split(',')[1])
order_item_subtotal = float(order_item.split(',')[4])
if order_item_order_id in orders_dict:
# Look up into orders_dict using order_id to get order_date
orders_dict_date = orders_dict[order_item_order_id]
if orders_dict_date in daily_revenue:
# If order_date exists in orders_dict then add order_item_subtotal to the existing value
# based up on the key in daily_revenue
daily_revenue[orders_dict_date] = round(daily_revenue[orders_dict_date] + order_item_subtotal, 2)
else:
# If order_date does not exists then add new element to daily_revenue
daily_revenue[orders_dict_date] = order_item_subtotal
return daily_revenue
orders_sample = [
'4,2013-07-25 00:00:00.0,8827,CLOSED',
'5,2013-07-25 00:00:00.0,11318,COMPLETE',
'7,2013-07-25 00:00:00.0,4530,COMPLETE',
'105,2013-07-26 00:00:00.0,8220,COMPLETE'
]
order_items_sample = [
'5,4,897,2,49.98,24.99',
'6,4,365,5,299.95,59.99',
'7,4,502,3,150.0,50.0',
'8,4,1014,4,199.92,49.98',
'9,5,957,1,299.98,299.98',
'10,5,365,5,299.95,59.99',
'11,5,1014,2,99.96,49.98',
'12,5,957,1,299.98,299.98',
'13,5,403,1,129.99,129.99',
'14,7,1073,1,199.99,199.99',
'15,7,957,1,299.98,299.98',
'16,7,926,5,79.95,15.99',
'239,105,403,1,129.99,129.99',
'240,105,365,3,179.97,59.99',
'241,105,365,2,119.98,59.99'
]
get_daily_revenue(orders_sample, order_items_sample, 'COMPLETE')
{'2013-07-25 00:00:00.0': 1709.78, '2013-07-26 00:00:00.0': 429.94}
Note
Use the function to get daily revenue considering only COMPLETE orders.
get_daily_revenue(orders, order_items, 'COMPLETE')
{'2013-07-25 00:00:00.0': 20030.32,
'2013-07-26 00:00:00.0': 42165.88,
'2013-07-27 00:00:00.0': 33156.21,
'2013-07-28 00:00:00.0': 27012.91,
'2013-07-29 00:00:00.0': 45898.65,
'2013-07-30 00:00:00.0': 40590.21,
'2013-07-31 00:00:00.0': 46503.83,
'2013-08-01 00:00:00.0': 38231.41,
'2013-08-02 00:00:00.0': 36633.44,
'2013-08-03 00:00:00.0': 34828.71,
'2013-08-04 00:00:00.0': 26161.97,
'2013-08-05 00:00:00.0': 25804.33,
'2013-08-06 00:00:00.0': 41413.79,
'2013-08-07 00:00:00.0': 31533.1,
'2013-08-08 00:00:00.0': 27359.07,
'2013-08-09 00:00:00.0': 22091.95,
'2013-08-10 00:00:00.0': 39038.72,
'2013-08-11 00:00:00.0': 21302.69,
'2013-08-12 00:00:00.0': 41139.11,
'2013-08-13 00:00:00.0': 12468.53,
'2013-08-14 00:00:00.0': 29760.88,
'2013-08-15 00:00:00.0': 37473.12,
'2013-08-16 00:00:00.0': 25547.74,
'2013-08-17 00:00:00.0': 52940.94,
'2013-08-18 00:00:00.0': 31304.59,
'2013-08-19 00:00:00.0': 10603.87,
'2013-08-20 00:00:00.0': 32680.05,
'2013-08-21 00:00:00.0': 20326.67,
'2013-08-22 00:00:00.0': 30542.99,
'2013-08-23 00:00:00.0': 25676.67,
'2013-08-24 00:00:00.0': 39566.76,
'2013-08-25 00:00:00.0': 24176.98,
'2013-08-26 00:00:00.0': 32764.19,
'2013-08-27 00:00:00.0': 29917.18,
'2013-08-28 00:00:00.0': 15508.83,
'2013-08-29 00:00:00.0': 29657.13,
'2013-08-30 00:00:00.0': 16826.35,
'2013-08-31 00:00:00.0': 23916.02,
'2013-09-01 00:00:00.0': 28224.43,
'2013-09-02 00:00:00.0': 36572.45,
'2013-09-03 00:00:00.0': 33598.37,
'2013-09-04 00:00:00.0': 14672.73,
'2013-09-05 00:00:00.0': 43742.2,
'2013-09-06 00:00:00.0': 42171.36,
'2013-09-07 00:00:00.0': 32440.08,
'2013-09-08 00:00:00.0': 26988.11,
'2013-09-09 00:00:00.0': 37805.85,
'2013-09-10 00:00:00.0': 37044.81,
'2013-09-11 00:00:00.0': 13959.96,
'2013-09-12 00:00:00.0': 29668.41,
'2013-09-13 00:00:00.0': 16894.24,
'2013-09-14 00:00:00.0': 50099.43,
'2013-09-15 00:00:00.0': 21931.71,
'2013-09-16 00:00:00.0': 19308.73,
'2013-09-17 00:00:00.0': 18827.31,
'2013-09-18 00:00:00.0': 36194.59,
'2013-09-19 00:00:00.0': 41831.29,
'2013-09-20 00:00:00.0': 23230.05,
'2013-09-21 00:00:00.0': 22988.28,
'2013-09-22 00:00:00.0': 32105.07,
'2013-09-23 00:00:00.0': 36075.92,
'2013-09-24 00:00:00.0': 36712.37,
'2013-09-25 00:00:00.0': 44628.96,
'2013-09-26 00:00:00.0': 51404.02,
'2013-09-27 00:00:00.0': 43653.31,
'2013-09-28 00:00:00.0': 27721.5,
'2013-09-29 00:00:00.0': 26244.91,
'2013-09-30 00:00:00.0': 37202.86,
'2013-10-01 00:00:00.0': 18622.05,
'2013-10-02 00:00:00.0': 38284.92,
'2013-10-03 00:00:00.0': 31431.93,
'2013-10-04 00:00:00.0': 43874.09,
'2013-10-05 00:00:00.0': 33440.09,
'2013-10-06 00:00:00.0': 38882.82,
'2013-10-07 00:00:00.0': 18696.85,
'2013-10-08 00:00:00.0': 38930.45,
'2013-10-09 00:00:00.0': 20241.56,
'2013-10-10 00:00:00.0': 31290.32,
'2013-10-11 00:00:00.0': 35022.43,
'2013-10-12 00:00:00.0': 28034.86,
'2013-10-13 00:00:00.0': 48405.18,
'2013-10-14 00:00:00.0': 18882.35,
'2013-10-15 00:00:00.0': 24112.48,
'2013-10-16 00:00:00.0': 21025.27,
'2013-10-17 00:00:00.0': 29120.53,
'2013-10-18 00:00:00.0': 20948.94,
'2013-10-19 00:00:00.0': 24107.06,
'2013-10-20 00:00:00.0': 27366.67,
'2013-10-21 00:00:00.0': 19230.94,
'2013-10-22 00:00:00.0': 20437.38,
'2013-10-23 00:00:00.0': 41052.82,
'2013-10-24 00:00:00.0': 18946.1,
'2013-10-25 00:00:00.0': 30551.7,
'2013-10-26 00:00:00.0': 26521.1,
'2013-10-27 00:00:00.0': 36942.7,
'2013-10-28 00:00:00.0': 22706.3,
'2013-10-29 00:00:00.0': 23544.26,
'2013-10-30 00:00:00.0': 16798.86,
'2013-10-31 00:00:00.0': 29819.85,
'2013-11-01 00:00:00.0': 45791.7,
'2013-11-02 00:00:00.0': 25631.21,
'2013-11-03 00:00:00.0': 57212.85,
'2013-11-04 00:00:00.0': 34211.06,
'2013-11-05 00:00:00.0': 41651.39,
'2013-11-06 00:00:00.0': 43085.8,
'2013-11-07 00:00:00.0': 40661.6,
'2013-11-08 00:00:00.0': 28307.46,
'2013-11-09 00:00:00.0': 40240.44,
'2013-11-10 00:00:00.0': 21337.46,
'2013-11-11 00:00:00.0': 42214.68,
'2013-11-12 00:00:00.0': 24111.96,
'2013-11-13 00:00:00.0': 40188.16,
'2013-11-14 00:00:00.0': 46206.7,
'2013-11-15 00:00:00.0': 31043.53,
'2013-11-16 00:00:00.0': 19151.7,
'2013-11-17 00:00:00.0': 25144.36,
'2013-11-18 00:00:00.0': 31469.73,
'2013-11-19 00:00:00.0': 30258.22,
'2013-11-20 00:00:00.0': 34164.75,
'2013-11-21 00:00:00.0': 19412.81,
'2013-11-22 00:00:00.0': 39561.64,
'2013-11-23 00:00:00.0': 39698.28,
'2013-11-24 00:00:00.0': 33962.17,
'2013-11-25 00:00:00.0': 18878.51,
'2013-11-26 00:00:00.0': 28637.23,
'2013-11-27 00:00:00.0': 19771.52,
'2013-11-28 00:00:00.0': 43544.74,
'2013-11-29 00:00:00.0': 44914.53,
'2013-11-30 00:00:00.0': 49901.39,
'2013-12-01 00:00:00.0': 35147.85,
'2013-12-02 00:00:00.0': 12875.48,
'2013-12-03 00:00:00.0': 46867.78,
'2013-12-04 00:00:00.0': 25200.64,
'2013-12-05 00:00:00.0': 25887.67,
'2013-12-06 00:00:00.0': 53368.29,
'2013-12-07 00:00:00.0': 44045.8,
'2013-12-08 00:00:00.0': 19174.89,
'2013-12-09 00:00:00.0': 19887.9,
'2013-12-10 00:00:00.0': 24741.51,
'2013-12-11 00:00:00.0': 46870.39,
'2013-12-12 00:00:00.0': 27399.66,
'2013-12-13 00:00:00.0': 19538.79,
'2013-12-14 00:00:00.0': 16767.31,
'2013-12-15 00:00:00.0': 36907.04,
'2013-12-16 00:00:00.0': 8019.08,
'2013-12-17 00:00:00.0': 13673.72,
'2013-12-18 00:00:00.0': 35229.96,
'2013-12-19 00:00:00.0': 22047.64,
'2013-12-20 00:00:00.0': 36022.42,
'2013-12-21 00:00:00.0': 31613.01,
'2013-12-22 00:00:00.0': 38058.83,
'2013-12-23 00:00:00.0': 19945.33,
'2013-12-24 00:00:00.0': 29206.62,
'2013-12-25 00:00:00.0': 41778.41,
'2013-12-26 00:00:00.0': 44547.15,
'2013-12-27 00:00:00.0': 24562.11,
'2013-12-28 00:00:00.0': 33838.05,
'2013-12-29 00:00:00.0': 21752.61,
'2013-12-30 00:00:00.0': 36728.69,
'2013-12-31 00:00:00.0': 37957.83,
'2014-01-01 00:00:00.0': 25282.12,
'2014-01-02 00:00:00.0': 17503.07,
'2014-01-03 00:00:00.0': 41479.36,
'2014-01-04 00:00:00.0': 25711.38,
'2014-01-05 00:00:00.0': 45781.13,
'2014-01-06 00:00:00.0': 20705.45,
'2014-01-07 00:00:00.0': 26302.87,
'2014-01-08 00:00:00.0': 18313.0,
'2014-01-09 00:00:00.0': 30042.74,
'2014-01-10 00:00:00.0': 41257.47,
'2014-01-11 00:00:00.0': 43901.48,
'2014-01-12 00:00:00.0': 28347.76,
'2014-01-13 00:00:00.0': 25911.78,
'2014-01-14 00:00:00.0': 34580.61,
'2014-01-15 00:00:00.0': 37343.83,
'2014-01-16 00:00:00.0': 29499.85,
'2014-01-17 00:00:00.0': 23151.15,
'2014-01-18 00:00:00.0': 23402.29,
'2014-01-19 00:00:00.0': 29404.62,
'2014-01-20 00:00:00.0': 32716.38,
'2014-01-21 00:00:00.0': 38683.67,
'2014-01-22 00:00:00.0': 33530.81,
'2014-01-23 00:00:00.0': 29472.05,
'2014-01-24 00:00:00.0': 25281.2,
'2014-01-25 00:00:00.0': 20115.05,
'2014-01-26 00:00:00.0': 24456.18,
'2014-01-27 00:00:00.0': 23521.46,
'2014-01-28 00:00:00.0': 30685.46,
'2014-01-29 00:00:00.0': 30290.05,
'2014-01-30 00:00:00.0': 47273.68,
'2014-01-31 00:00:00.0': 28037.76,
'2014-02-01 00:00:00.0': 48115.36,
'2014-02-02 00:00:00.0': 36368.75,
'2014-02-03 00:00:00.0': 24773.62,
'2014-02-04 00:00:00.0': 25177.37,
'2014-02-05 00:00:00.0': 24515.22,
'2014-02-06 00:00:00.0': 36850.7,
'2014-02-07 00:00:00.0': 43856.83,
'2014-02-08 00:00:00.0': 26527.02,
'2014-02-09 00:00:00.0': 40137.71,
'2014-02-10 00:00:00.0': 30502.69,
'2014-02-11 00:00:00.0': 37184.37,
'2014-02-12 00:00:00.0': 34901.6,
'2014-02-13 00:00:00.0': 30811.55,
'2014-02-14 00:00:00.0': 29085.94,
'2014-02-15 00:00:00.0': 33802.84,
'2014-02-16 00:00:00.0': 44126.41,
'2014-02-17 00:00:00.0': 23147.33,
'2014-02-18 00:00:00.0': 35835.12,
'2014-02-19 00:00:00.0': 48966.83,
'2014-02-20 00:00:00.0': 25698.65,
'2014-02-21 00:00:00.0': 31009.6,
'2014-02-22 00:00:00.0': 19181.75,
'2014-02-23 00:00:00.0': 17894.94,
'2014-02-24 00:00:00.0': 32420.29,
'2014-02-25 00:00:00.0': 40888.54,
'2014-02-26 00:00:00.0': 21705.14,
'2014-02-27 00:00:00.0': 30835.3,
'2014-02-28 00:00:00.0': 40812.57,
'2014-03-01 00:00:00.0': 41382.32,
'2014-03-02 00:00:00.0': 20397.77,
'2014-03-03 00:00:00.0': 40290.55,
'2014-03-04 00:00:00.0': 48069.04,
'2014-03-05 00:00:00.0': 29798.85,
'2014-03-06 00:00:00.0': 33242.3,
'2014-03-07 00:00:00.0': 27395.75,
'2014-03-08 00:00:00.0': 25289.65,
'2014-03-10 00:00:00.0': 33899.78,
'2014-03-11 00:00:00.0': 40639.48,
'2014-03-12 00:00:00.0': 42742.02,
'2014-03-13 00:00:00.0': 24204.25,
'2014-03-14 00:00:00.0': 29845.57,
'2014-03-15 00:00:00.0': 46261.47,
'2014-03-16 00:00:00.0': 31197.23,
'2014-03-17 00:00:00.0': 18938.98,
'2014-03-18 00:00:00.0': 36967.51,
'2014-03-19 00:00:00.0': 26098.59,
'2014-03-20 00:00:00.0': 33996.15,
'2014-03-21 00:00:00.0': 31027.52,
'2014-03-22 00:00:00.0': 31650.5,
'2014-03-23 00:00:00.0': 40011.28,
'2014-03-24 00:00:00.0': 23847.21,
'2014-03-25 00:00:00.0': 19780.6,
'2014-03-26 00:00:00.0': 42382.4,
'2014-03-27 00:00:00.0': 19719.02,
'2014-03-28 00:00:00.0': 25668.33,
'2014-03-29 00:00:00.0': 21106.74,
'2014-03-30 00:00:00.0': 42448.24,
'2014-03-31 00:00:00.0': 41378.04,
'2014-04-01 00:00:00.0': 33056.89,
'2014-04-02 00:00:00.0': 44430.33,
'2014-04-03 00:00:00.0': 49942.93,
'2014-04-04 00:00:00.0': 34072.28,
'2014-04-05 00:00:00.0': 31575.26,
'2014-04-06 00:00:00.0': 19200.22,
'2014-04-07 00:00:00.0': 14197.38,
'2014-04-08 00:00:00.0': 54214.37,
'2014-04-09 00:00:00.0': 43104.94,
'2014-04-10 00:00:00.0': 40666.25,
'2014-04-11 00:00:00.0': 23333.98,
'2014-04-12 00:00:00.0': 35639.09,
'2014-04-13 00:00:00.0': 21509.74,
'2014-04-14 00:00:00.0': 16650.04,
'2014-04-15 00:00:00.0': 38057.54,
'2014-04-16 00:00:00.0': 27121.01,
'2014-04-17 00:00:00.0': 15760.05,
'2014-04-18 00:00:00.0': 37875.53,
'2014-04-19 00:00:00.0': 13152.65,
'2014-04-20 00:00:00.0': 34014.07,
'2014-04-21 00:00:00.0': 49522.07,
'2014-04-22 00:00:00.0': 24719.15,
'2014-04-23 00:00:00.0': 38942.88,
'2014-04-24 00:00:00.0': 14013.33,
'2014-04-25 00:00:00.0': 40560.08,
'2014-04-26 00:00:00.0': 41386.63,
'2014-04-27 00:00:00.0': 36426.21,
'2014-04-28 00:00:00.0': 19309.81,
'2014-04-29 00:00:00.0': 38458.54,
'2014-04-30 00:00:00.0': 20850.89,
'2014-05-01 00:00:00.0': 30957.47,
'2014-05-02 00:00:00.0': 33456.28,
'2014-05-03 00:00:00.0': 32350.29,
'2014-05-04 00:00:00.0': 22027.02,
'2014-05-05 00:00:00.0': 28034.0,
'2014-05-06 00:00:00.0': 41467.72,
'2014-05-07 00:00:00.0': 35490.3,
'2014-05-08 00:00:00.0': 19789.73,
'2014-05-09 00:00:00.0': 43436.97,
'2014-05-10 00:00:00.0': 31074.21,
'2014-05-11 00:00:00.0': 36289.84,
'2014-05-12 00:00:00.0': 47296.15,
'2014-05-13 00:00:00.0': 33047.27,
'2014-05-14 00:00:00.0': 25645.86,
'2014-05-15 00:00:00.0': 31806.22,
'2014-05-16 00:00:00.0': 49846.26,
'2014-05-17 00:00:00.0': 29198.83,
'2014-05-18 00:00:00.0': 33001.06,
'2014-05-19 00:00:00.0': 16558.01,
'2014-05-20 00:00:00.0': 43688.15,
'2014-05-21 00:00:00.0': 25794.95,
'2014-05-22 00:00:00.0': 17414.02,
'2014-05-23 00:00:00.0': 25661.97,
'2014-05-24 00:00:00.0': 30707.18,
'2014-05-25 00:00:00.0': 19127.84,
'2014-05-26 00:00:00.0': 26552.53,
'2014-05-27 00:00:00.0': 13517.47,
'2014-05-28 00:00:00.0': 39338.9,
'2014-05-29 00:00:00.0': 25546.25,
'2014-05-30 00:00:00.0': 14286.25,
'2014-05-31 00:00:00.0': 25137.29,
'2014-06-01 00:00:00.0': 39940.35,
'2014-06-02 00:00:00.0': 41520.41,
'2014-06-03 00:00:00.0': 24381.6,
'2014-06-04 00:00:00.0': 24597.44,
'2014-06-05 00:00:00.0': 14154.59,
'2014-06-06 00:00:00.0': 29931.83,
'2014-06-07 00:00:00.0': 36834.15,
'2014-06-08 00:00:00.0': 35127.21,
'2014-06-09 00:00:00.0': 44563.2,
'2014-06-10 00:00:00.0': 16817.27,
'2014-06-11 00:00:00.0': 28803.69,
'2014-06-12 00:00:00.0': 27426.44,
'2014-06-13 00:00:00.0': 39116.97,
'2014-06-14 00:00:00.0': 43824.5,
'2014-06-15 00:00:00.0': 20881.44,
'2014-06-16 00:00:00.0': 35070.53,
'2014-06-17 00:00:00.0': 30644.41,
'2014-06-18 00:00:00.0': 32682.51,
'2014-06-19 00:00:00.0': 47391.75,
'2014-06-20 00:00:00.0': 25706.96,
'2014-06-21 00:00:00.0': 17196.91,
'2014-06-22 00:00:00.0': 23103.45,
'2014-06-23 00:00:00.0': 23146.55,
'2014-06-24 00:00:00.0': 23427.4,
'2014-06-25 00:00:00.0': 37621.4,
'2014-06-26 00:00:00.0': 24306.14,
'2014-06-27 00:00:00.0': 47910.89,
'2014-06-28 00:00:00.0': 22260.18,
'2014-06-29 00:00:00.0': 19895.91,
'2014-06-30 00:00:00.0': 31446.39,
'2014-07-01 00:00:00.0': 28576.8,
'2014-07-02 00:00:00.0': 19860.78,
'2014-07-03 00:00:00.0': 30640.73,
'2014-07-04 00:00:00.0': 17784.68,
'2014-07-05 00:00:00.0': 35675.93,
'2014-07-06 00:00:00.0': 13465.18,
'2014-07-07 00:00:00.0': 24332.8,
'2014-07-08 00:00:00.0': 34845.64,
'2014-07-09 00:00:00.0': 28610.76,
'2014-07-10 00:00:00.0': 30247.47,
'2014-07-11 00:00:00.0': 21528.33,
'2014-07-12 00:00:00.0': 29528.6,
'2014-07-13 00:00:00.0': 29041.92,
'2014-07-14 00:00:00.0': 24056.18,
'2014-07-15 00:00:00.0': 38500.98,
'2014-07-16 00:00:00.0': 32893.29,
'2014-07-17 00:00:00.0': 23240.27,
'2014-07-18 00:00:00.0': 34192.71,
'2014-07-19 00:00:00.0': 32981.55,
'2014-07-20 00:00:00.0': 45338.95,
'2014-07-21 00:00:00.0': 37885.36,
'2014-07-22 00:00:00.0': 24028.45,
'2014-07-23 00:00:00.0': 25482.51,
'2014-07-24 00:00:00.0': 34552.03}
len(get_daily_revenue(orders, order_items, 'COMPLETE'))
364
get_daily_revenue(orders, order_items, 'COMPLETE')['2014-07-10 00:00:00.0']
30247.47