我的代码如下:
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)
我的问题是,代码没有遍历整个文件。它只输出一个条目。这是为什么?我是不是在重写什么东西,我是否需要在每个循环中附加另一个dict?
而且,似乎for循环正在为每个dict键遍历iteritems。有办法让它只通过一次吗?
问题确实是
raw_data2 = raw_data[0]
我最终创建了一个迭代器来访问dict值。
谢谢。
最后,我希望最后的Json文件是这样的,使用上面提供的数据:
{'name': u'name', 'children': [{'name': u'500 Startups', 'size': '500'}, {'name': u'AffinityChina', 'size': '500'}]}
“它只输出一个条目”,因为当您说
raw_data2 = raw_data[0]
时,您只选择JSON文件中的第一个字典以这样的方式作为起点(我没有测试/运行它):
试试这个。尽管您的示例输入和输出数据并没有提供很多关于“name”字段应该来自何处的线索。我以为你想要你的单子里原来的东西的名字。
相关问题 更多 >
编程相关推荐