Creating nested Json structure with multiple key values in Python from Json

d3.js, ipython, json, python, python-3.x

Solution

Try this. Though your sample input and output data don't really give many clues as to where the "name" fields should come from. I've assumed you wanted the name of the original item in your list.

original_json = json.load(open('data/bricsinvestorsfirst.json'),'r')

response_json = {}
response_json["name"] = "analytics"

# where your children list will go
children = []

size = 500 # or whatever else you want

# For each item in your original list
for item in original_json:
    children.append({"name" : item["name"],
                     "size" : size})

response_json["children"] = children

print json.dumps(response_json,indent=2)

Problem

My code is as follows: ``` import json def reformat(importscompanies): #print importscompanies container={} child=[] item_dict={} for name, imports in importscompanies.iteritems(): item_dict['name'] = imports item_dict['size'] = '500' child.append(dict(item_dict)) container['name'] = name container['children'] = child if __name__ == '__main__': raw_data = json.load(open('data/bricsinvestorsfirst.json')) run(raw_data) def run(raw_data): raw_data2 = raw_data[0] the_output = reformat(raw_data2) ``` My issue is, the code isn't going through the whole file. It's only outputting one entry. Why is this? Am I rewriting something and do I need another dict that appends with every loop? Also, it seems as though the for loop is going through the iteritems for each dict key. Is there a way to make it pass only once? The issue is indeed ``` raw_data2 = raw_data[0] ``` I ended up creating an iterator to access the dict values. Thanks. Lastly, I'm hoping my final Json file looks this way, using the data I provided above: ``` {'name': u'name', 'children': [{'name': u'500 Startups', 'size': '500'}, {'name': u'AffinityChina', 'size': '500'}]} ```

Original source