• 締切済み

以下のようなjsonファイルで、"A" : "11

以下のようなjsonファイルで、"A" : "111"がある部分だけを消去したいのですが、python2.7.10とWindows7(x86)では可能でしょうか。やり方を知っている方いらっしゃったら教えてください。 --- [ [ { "A" : "111", "B" : "...", "C" : "..." }, { "A" : "011", "B" : "...", "C" : "..." }, { "A" : "001", "B" : "...", "C" : "..." } ], [ { "A" : "111", "B" : "...", "C" : "..." }, { "A" : "011", "B" : "...", "C" : "..." }, { "A" : "001", "B" : "...", "C" : "..." } ] ] を、 [ [ { "A" : "011", "B" : "...", "C" : "..." }, { "A" : "001", "B" : "...", "C" : "..." } ], [ { "A" : "011", "B" : "...", "C" : "..." }, { "A" : "001", "B" : "...", "C" : "..." } ] ] としたいです。

みんなの回答

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

jsonファイルを読み込み、辞書型に変換して処理します。 jsonファイルはPythonスクリプトと同じフォルダ内に"data.json"として保存されているとします。 --- import json path = 'data.json' f = open(path, 'r') data = json.load(f) block_idx = 0 item_idx = 0 for block in data:  for item in block:   if "A" in item and item["A"] == "111":    del data[block_idx][item_idx]   item_idx += 1  block_idx += 1  item_idx = 0 out = json.dumps(data) print(out) f.close() --- 上記スクリプトで、変数outに"A": "111"のある部分を消去したjsonデータが格納されます。 ※OKWAVEの仕様上、インデントを全角スペースに変換しているのでご注意ください。

bluechart
質問者

お礼

ずいぶん時間が経ってしまいましたが... おかげさまでできました! 本当に、本当にありがとうございます。 報告が遅れ、申し訳ございませんでした。

すると、全ての回答が全文表示されます。

関連するQ&A