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
Post a Comment