我想用 Python 将 JSON 文件的内容复制到另一个 JSON 文件中
有任何想法吗 ?
谢谢 :)
由于缺乏研究工作,我通常不会回答,但考虑到评论中的糟糕建议,我会咬牙并给出更好的选择。
现在,这在很大程度上取决于您的意思,您是希望用另一个文件覆盖一个文件的内容,还是插入?后者可以这样做:
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
模块,它使我们可以很容易地做到这一点。
我们打开这两个文件进行读取,然后以写入模式再次打开目标文件以将其截断并写入。
标记的行取决于 JSON 数据结构,这里我将其附加到根列表元素(可能不存在),但您可能希望将其放置在特定dict
键或类似的键处。
在替换内容的情况下,它变得更容易:
with open("from.json", "r") as from, open("to.json", "w") as to:
to.write(from.read())
在这里,我们实际上只是从一个文件中读取数据并将其写入另一个文件。
当然,您可能希望检查数据是否为JSON,在这种情况下,您可以使用第一个解决方案中的 JSON 方法,这将在无效数据上抛出异常。
另一个可以说是更好的解决方案也可以shutil
是复制方法,它可以避免手动读取或写入文件内容。
使用该with
语句为我们提供了自动关闭文件的好处——即使发生异常。最好总是尽可能地使用它们。
请注意,在 2.7 之前的 Python 版本中,with
语句不处理多个上下文管理器,而是需要嵌套它们:
with open("from.json", "r") as from:
with open("to.json", "r+") as to:
...