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

ili*_*ias 0 python json

我想用Python复制另一个JSON文件中的JSON文件的内容

有任何想法吗 ?

谢谢 :)

Gar*_*tty 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)
Run Code Online (Sandbox Code Playgroud)

这使用了python的json模块,这使我们可以非常轻松地完成这项工作.

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

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

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

with open("from.json", "r") as from, open("to.json", "w") as to:
    to.write(from.read())
Run Code Online (Sandbox Code Playgroud)

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

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

另一个可以说是更好的解决方案也可以shutil是复制方法,它可以避免实际手动读取或写入文件内容.

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

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

with open("from.json", "r") as from:
    with open("to.json", "r+") as to:
        ...
Run Code Online (Sandbox Code Playgroud)