I have this .csv file ...
id,first_name,last_name,email,date,opt-in,unique_code
1,Jimmy,Reyes,[email protected],12/29/2016,FALSE,ER45DH
2,Doris,Wood,[email protected],04/22/2016,,MU34T3
3,Steven,Miller,[email protected],07/31/2016,FALSE,G34FGH
4,Earl,Parker,[email protected],01-08-17,FALSE,ASY67J
5,Barbara,Cruz,[email protected],12/30/2016,FALSE,NHG67P
If the opt-in value is empty, its should print "0". The last value in csv should print first, and then all the name, value pairs in a specific format, like shown in the expected output file below.
My expected output
ER45DH<tab>"id"="1","first_name"="Jimmy","last_name"="Reyes","email"="[email protected]","date"="12/29/2016","opt-in"="FALSE"
MU34T3<tab>"id"="2","first_name"="Doris","last_name"="Wood","email"="[email protected]","date"="04/22/2016,"opt-in"="0"
.......
My code so far ..
import csv
with open('newfilename.csv', 'w') as f2:
with open('mycsvfile.csv', mode='r') as infile:
reader = csv.reader(infile)
for i,rows in enumerate(reader):
if i == 0:
header = rows
else:
if rows[5] == '':
rows[5] = 0;
pat = rows[0]+'\t'+'''"%s"="%%s",'''*(len(header)-2)+'''"%s"="%%s"\n'''
print pat
f2.write(pat % tuple(header[1:]) % tuple(rows[1:]))
f2.close()
This code produces this output
1 "first_name"="Jimmy","last_name"="Reyes","email"="[email protected]","date"="12/29/2016","opt-in"="FALSE","unique_code"="ASD34R"
2 "first_name"="Doris","last_name"="Wood","email"="[email protected]","date"="04/22/2016","opt-in"="0","unique_code"="SDS56N"
As you can see column "id" is missing, and I want unque_code at first place.
I will really appreciate any help/ideas/pointers.
Thanks