I can build the json result with this code.
MY code:
import csv
import json
from os import sep
with open('tran_test.csv') as file:
dict_input = csv.reader(file, delimiter='|')
next(dict_input, None)
output = []
for line in dict_input:
promotion_code = line[0]
promotion_name = line[1]
coupon_code = line[2]
coupon_name = line[3]
coupon = {}
if coupon_code == '' and promotion_code !='':
pro_code = {}
pro_code['coupon_code'] = promotion_code
pro_code['type'] = 'promo_code'
pro_code['description'] = promotion_name
pro_code['redeem'] = 'false'
coupon = [pro_code]
elif coupon_code != '' and promotion_code == '':
cou_code = {}
cou_code['coupon_code'] = coupon_code
cou_code['type'] = 'coupon_code'
cou_code['description'] = coupon_name
cou_code['redeem'] = 'false'
coupon = [cou_code]
elif (coupon_code != '' and promotion_code !=''):
both_promo = {}
both_coup = {}
both_promo['coupon_code'] = promotion_code
both_promo['type'] = 'promo_code'
both_promo['description'] = promotion_name
both_promo['redeem'] = 'false'
both_coup['coupon_code'] = coupon_code
both_coup['type'] = 'coupon_code'
both_coup['description'] = coupon_name
both_coup['redeem'] = 'false'
coupon = (both_promo , both_coup)
else:
None
output_obj = {}
output_obj['coupons'] = coupon
output.append(output_obj)
print(json.dumps(output))
And the result like this:
[{"coupons": [{"coupon_code": "T000003155 ~ E000005182", "redeem": "false", "type": "promo_code", "description": "Net Spend - $800 Enjoy $80 off ~ Net Spend $2000 Enjoy 15%* off"}, {"coupon_code": "0494040", "redeem": "false", "type": "coupon_code", "description": "new join $300"}]}]
The sample csv:
Promotion Code|Promotion Name|Coupon Code|Coupon Name
T000003155 ~ E000005182|Net Spend - $800 Enjoy $80 off ~ Net Spend $2000 Enjoy 15%* off |0494040|new join $300
I want to split the promotion code and promotion name. This depends on '~'. And create two records separately.
Desired result:
[{"coupons": [{"coupon_code": "T000003155", "redeem": "false", "type": "promo_code", "description": "Net Spend - $800 Enjoy $80 off"},{"coupon_code": "E000005182", "redeem": "false", "type": "promo_code", "description": "Net Spend $2000 Enjoy 15%* off"}, {"coupon_code": "0494040", "redeem": "false", "type": "coupon_code", "description": "new join $300"}]}]
How can I do this?