This is the first time I am attempting this - someone was kind enough to help me with my previous error and told me to add print statements before the error which I did the error is now invalid syntax else: on line 130
Code:
class BadLine(Exception):
pass
def isblank(item):
return len(item) == 0 or item.isspace()
def triad(key,data):
try:
assert key in fields
except:
print "key %s not found" %key
raise ValueError,key
print data
print fields2
print key
item = data[fields2[key]]
if key in noblanks:
item = item.replace(" ","")
if key.startswith("_"):
key = key.replace("_","") # hack for double column names
if isblank(item):
if defaults:
if key in defaults.keys():
return "<%s>"%key+defaults[key]+"</%s>"%key
else:
return "<%s>"%key+"(inconnu)</%s>"%key
else:
print line
raise BadLine
return "<%s>"%key+item+"</%s>"%key
defaults = {"NAS":"000000000","A_DateNaissance":"1/1/20","B1_NbJoursGarde":"0"}
noblanks = ["NAS","CodePostal"]
filename = "KR.tsv"
outname = "KR5.xml"
outfile = file(outname,"w")
data = [item.strip().split("\t") for item in file(filename).readlines()]
fields = data[0]
fields2 = dict([(item[1],item[0]) for item in enumerate(fields)])
# hack for double column names
fields2["_Prenom"]=4
fields2["_NomFamille"]=3
fields += "_Prenom _NomFamille".split()
# end hack for double column names
print fields2
outfile.write(prefix)
for line in data[1:]:
if not [item for item in line if (not isblank(item))]:
break # TSV file ends with many blank lines; exit and clean up on first one
try:
record = ["\n\n<R>"]
record.append(triad("Annee",line))
record.append(triad("NoReleve",line))
record.append("<Payeur>")
record.append(triad("NAS",line))
record.append(triad("_NomFamille",line))
record.append(triad("_Prenom",line))
record.append("<Adresse>")
record.append(triad("Ligne1",line))
record.append(triad("Ville",line))
record.append(triad("Province",line))
record.append(triad("CodePostal",line))
record.append("</Adresse>")
record.append("</Payeur>")
record.append("<Enfant>")
record.append(triad("NomFamille",line))
record.append(triad("Prenom",line))
record.append(triad("A_DateNaissance",line))
record.append("<CaseB>")
record.append(triad("B1_NbJoursGarde",line))
record.append("</CaseB>")
record.append("<Montants>")
record.append(triad("C_FraisPayes",line))
record.append("</Montants>")
record.append("</Enfant>")
record.append("</R>")
record = "\n".join(record)
outfile.write(record)
except BadLine:
pass
outfile.write(suffix)
outfile.close()
Comment