Python: Dictionary into Json file -


i have following dictionary

a = {'index': [1, 2, 3], 'similar': [[0, 2], [1, 2], [2, 1]], 'markets': [['a', 'c'], ['b', 'c'], ['a', 'b']]} keys = ['index', 'similar', 'markets'] 

and want transform json file

like

{'index': 'elem1' , "similar" :  [ {'elem0' 'elem2'} ]  , "markets" : [{'marketa', 'marketc'}] } {'index': 'elem2  , "similar" :  [ {'elem1' 'elem2'} ]  , "markets" : [{'marketb', 'marketc'}] } {'index': 'elem3' , "similar" :  [ {'elem2' 'elem1'} ]  , "markets" : [{'marketa', 'marketb'}] } 

i have

with open('result.json', 'w') fp:     json.dump(a, fp) 

but not sure how desired outcome

any appreciated

you have adapt structure of desired output. similar , market arrays contain sets ([{'elem0', 'elem2' }]) of course not possible in json.

i have written necessary piece of code you.

import json f = {'index': [1, 2, 3], 'similar': [[0, 2], [1, 2], [2, 1]], 'markets': [['a', 'c'], ['b', 'c'], ['a', 'b']]} res = {} k,v in f.iteritems():     i, s_v in enumerate(v):         if not res.get(i):             res[i] = {}         if k == 'markets':             prefix = 'market'         else:             prefix = 'elem'         if isinstance(s_v, int):             res[i][k] = '%s%s' % (prefix, s_v)         else:             res[i][k] = [[]]             _s_v in s_v:                 res[i][k][0].append('%s%s' % (prefix, _s_v))             res[i][k][0] = res[i][k][0] res = [v k, v in res.iteritems()] print json.dumps(res)  .. [{"index": "elem1", "similar": [["elem0", "elem2"]], "markets": [["marketa", "marketc"]]}, {"index": "elem2", "similar": [["elem1", "elem2"]], "markets": [["marketb", "marketc"]]}, {"index": "elem3", "similar": [["elem2", "elem1"]], "markets": [["marketa", "marketb"]]}] 

Comments