我想使用Python
将JSON文件的内容复制到另一个JSON文件中有什么想法吗?
谢谢:)
答案 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:
...