我正在导入一个JSON文件并将其用作模板,我可以在其上修改一些属性。
with open('example.json') as data_file:
j = json.load(data_file)
... # and within a loop:
with open('output.json', 'w') as outfile:
activejson = j # I would like this to reset or pull fresh from j
... # modify properties here
json.dump(activejson, outfile, indent=4)
activejson
并未在循环的每次迭代中提取模板j
。 (我可以在“修改属性”区域中从activejson
中的先前迭代中提取旧的修改后的值。)我的理解是activejson
指向j
而非作为副本activejson = j.copy()
似乎也没有做到这一点,activejson = {}
也没有。在每次迭代后清空此变量并刷新模板的正确命令/方法是什么?处理此问题的最有效方法是什么?
答案 0 :(得分:3)
由于JSON通常构造为嵌套对象,因此您需要使用copy.deepcopy
。
activejson = copy.deepcopy(j)