如何使用Python在另一个JSON文件中复制JSON文件

时间:2012-04-19 23:16:56

标签: python json

我想使用Python

将JSON文件的内容复制到另一个JSON文件中

有什么想法吗?

谢谢:)

1 个答案:

答案 0 :(得分:5)

由于缺乏研究工作,我通常不会回答,但考虑到评论中的不良建议,我会咬人并给出更好的选择。

现在,这在很大程度上取决于你的意思,你想用另一个文件覆盖一个文件的内容,还是插入?后者可以像这样完成:

with open("from.json", "r") as from, open("to.json", "r") as to:
    to_insert = json.load(from)
    destination = json.load(to)
    destination.append(to_insert) #The exact nature of this line varies. See below.
with open("to.json", "w") as to:
    json.dump(to, destination)

这使用了python的json module,这使我们可以非常轻松地完成这项任务。

我们打开两个文件进行读取,然后在写入模式下再次打开目标文件以截断它并写入它。

标记的行取决于JSON数据结构,这里我将它附加到根列表元素(可能不存在),但您可能希望将其放在特定的dict键上,或者某些键。

在更换内容的情况下,它变得更容易:

with open("from.json", "r") as from, open("to.json", "w") as to:
    to.write(from.read())

这里我们只是从一个文件中读取数据并将其写入另一个文件。

当然,您可能希望检查数据 JSON,在这种情况下,您可以像第一个解决方案一样使用JSON方法,这会在无效数据上抛出异常。

另一个可以说是更好的解决方案也可能是shutil's copy methods,这样可以避免实际手动读取或写入文件内容。

使用the with statement为我们提供了自动关闭文件的好处 - 即使发生异常也是如此。我们最好尽可能地使用它们。

请注意,在2.7之前的Python版本中,with语句不处理多个上下文管理器,而是需要嵌套它们:

with open("from.json", "r") as from:
    with open("to.json", "r+") as to:
        ...