JSON作为模板:不清楚

时间:2016-11-22 07:20:37

标签: python json

我正在导入一个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 = {}也没有。在每次迭代后清空此变量并刷新模板的正确命令/方法是什么?处理此问题的最有效方法是什么?

1 个答案:

答案 0 :(得分:3)

由于JSON通常构造为嵌套对象,因此您需要使用copy.deepcopy

activejson = copy.deepcopy(j)