2017-03-22 14 views
0
{ 
       "app": { 
        "Garden": { 
         "Flowers": { 
          "Red flower": "Rose", 
          "White Flower": "Jasmine", 
          "Yellow Flower": "Marigold" 
         } 
        }, 
        "Fruits": { 
         "Yellow fruit": "Mango", 
         "Green fruit": "Guava", 
         "White Flower": "groovy" 
        }, 
        "Trees": { 
         "label": { 
          "Yellow fruit": "Pumpkin", 
          "White Flower": "Bogan" 
         } 
        } 
       } 

私は上記のようにJSONコンテンツを持つファイルを持っていますが、このファイルのKey-Valueペアを追加/上書きしたいのですが、ファイル。私がファイルをgitにアップロードすると、更新されたKey-Valueペアだけでなく、ファイル全体が変更されたことが示されます。私の問題は、ファイルを開いて、ファイル全体が更新されているときに書き込むときです。Jsonファイルの更新と追加ファイルを更新しないキー値のペア

言ってやる例えば、私が更新する:

json[app][Garden][Flowers][Red Flower] = 'Shoe Flower' 

のみ、このキーと値のペア上のファイル全体を再書き込みする必要があるJSONファイルで更新していないする必要があります。

これは動作していない:私はあなたが間違った概念を約ファイルを修正し得ると考え、事前

+0

ファイル全体が変更されたのはなぜですか?おそらく元のファイルのフォーマットが 'json.dump'によって自動生成されたものと一致しないからでしょうか? – languitar

答えて

0

with open("/Users/vbabu/Documents/sk-SK.json",'a/w') as json_data: 
    json.dump(pte,json_data,ensure_ascii=False,indent=4, sort_keys=True) 

感謝を。

1行を更新すると、新しいファイルが作成され、古いファイルが置き換えられます。

Gitは、ファイル全体が変更されたことが、ラインインデントのために表示されることを示しました。

json.dump indent=4に設定すると、ファイルがフォーマットされたjsonと一致しないことがあります。

ファイルをフォーマットしたくない場合は、json.dumpの代わりに文字列操作と内容を書き込む必要があります。

関連する問題