Pythonで取得したデータを整形する

整形っていっても 1.jsonファイルを読み込む 2.要らない行とか文字列とかを削除する 3.変換したデータをファイルをもういっかいjsonファイルに押し込む これをするだけ

経緯

Pythonでネットニュース記事の文章を大量抽出する - 自由研究をします。 これをやった結果、文春のオンライン記事のデータファイルができた。900行くらい。

tweet-test-bot/netnewsdata.json at master · iinoten/tweet-test-bot · GitHub

いい感じ。でも中身を見ると良い感じではない

None
{空白}
\u3000

とかのおかしいのが混じってる。多分この後解析をするんだったらよろしくなさそう

https://bunshun.jp/articles/-/6 こんな感じで記事が削除されてたり画像のみのページがあったりするので多分それが原因っぽい。

書いた

import json

json_open = open('./netnewsdata.json', 'r')
json_load = json.load(json_open)
news_data_array = json_load['data']

form_news_data_array = []
for index, news_item in enumerate(news_data_array):
  replaced_news_text = news_item.replace("\u3000", "")
  replaced_news_text = news_item.replace("None", "")
  if not(replaced_news_text==''): form_news_data_array.append(replaced_news_text)

with open('./replaced_netnewsdata.json', 'w') as f:
    json.dump({"data":form_news_data_array}, f, ensure_ascii=False, indent=4)

こんな感じ

json_open = open('./netnewsdata.json', 'r')
json_load = json.load(json_open)
news_data_array = json_load['data']

news_data_arraynetnewsdata.jsonからのデータを取得。

form_news_data_array = []
for index, news_item in enumerate(news_data_array):
  replaced_news_text = news_item.replace("\u3000", "")
  replaced_news_text = news_item.replace("None", "")

取得した配列をforで回して無駄な字を削除

 if not(replaced_news_text==''): form_news_data_array.append(replaced_news_text)

form_news_data_arrayって空の配列を用意して空文字の要素以外の要素を追加

with open('./replaced_netnewsdata.json', 'w') as f:
    json.dump({"data":form_news_data_array}, f, ensure_ascii=False, indent=4)

replaced_netnewsdata.jsonに整形したjsonデータを追加

https://raw.githubusercontent.com/iinoten/tweet-test-bot/master/replaced_netnewsdata.json 良い感じかも(量の多いデータファイルだとgithubのページに表示されないんですね)