Convert Csv To A Nested Json While Formatting Values For Specific Keys To Numeric/int/float
I am trying to convert a CSV file to nested JSON, here's my CSV with first row as columns. CLID,District, attribute,value C001,Tebuslik, Name,Philip C001,Tebuslik,Age,34 C002,Honte
Solution 1:
Use str.isdigit
to check the string and then use int
.
Ex:
from csv import DictReader
from itertools import groupby
from pprint import pprint
import json
withopen(filename) as csvfile:
r = DictReader(csvfile, skipinitialspace=True)
data = [dict(d) for d in r]
groups = []
uniquekeys = []
for k, g in groupby(data, lambda r: (r['CLID'], r['District'])):
groups.append({
"CLID": k[0],
"District": k[1],
"attributes": [{k:int(v) if v.isdigit() else v for k, v in d.items() if k notin ['CLID','District']} for d inlist(g)] #Update
})
uniquekeys.append(k)
print(json.dumps(groups, indent = 4) + '\n}')
Post a Comment for "Convert Csv To A Nested Json While Formatting Values For Specific Keys To Numeric/int/float"