JSONファイルの内容をPythonを使用して別の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
モジュールを使用しているため、これを非常に簡単に行うことができます。
読み取り用に2つのファイルを開き、次に書き込みモードで宛先ファイルを再度開いて、ファイルを切り捨てて書き込みます。
マークされた行はJSONデータ構造によって異なります。ここでは、ルートリスト要素(存在できなかった)に追加していますが、特定のdict
キーなどに配置することをお勧めします。
内容を交換する場合、それはより簡単になります:
with open("from.json", "r") as from, open("to.json", "w") as to:
to.write(from.read())
ここでは、文字通り、一方のファイルからデータを読み取り、もう一方のファイルに書き込みます。
もちろん、データがJSONであることを確認することもできます。その場合、最初のソリューションと同様にJSONメソッドを使用できます。これにより、無効なデータに対して例外がスローされます。
これに対するもう1つの、おそらくより良い解決策は、ファイルの内容を手動で実際に読み書きすることを回避するshutil
コピーメソッドである可能性もあります。
ステートメントを使用するとwith
、例外が発生した場合でも、ファイルを自動的に閉じることができます。可能な限り常に使用するのが最善です。
2.7より前のバージョンのPythonでは、複数のコンテキストマネージャーはwith
ステートメントによって処理されないことに注意してください。代わりに、それらをネストする必要があります。
with open("from.json", "r") as from:
with open("to.json", "r+") as to:
...