0

JSONファイルの内容をPythonを使用して別のJSONファイルにコピーしたい

何か案は ?

ありがとうございました :)

4

1 に答える 1

6

研究努力が不足しているので、私は通常答えませんが、コメントの貧弱な提案を考えると、私は噛んでより良い選択肢を与えます。

さて、これはあなたが何を意味するかに大きく依存します、あなたはあるファイルの内容を別のもので上書きしたいですか、それとも挿入したいですか?後者は次のように行うことができます。

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:
        ...
于 2012-04-19T23:37:25.023 に答える