2020/12/28(月)SlackからエクスポートしたJSONをCSVに変換する
2020/12/28 11:30
SlackからエクスポートしたログファイルはJSON形式になっているので、そのまま議事録として保存するにはやや冗長です。
私は普段Notionを使っているのですが、NotionにインポートするためにはCSVあたりに変換するのが手っ取り早いです。最近はこの作業が必要になるたびにJSONフィールド名を調べて無駄な時間を費やしている気がするので、変換スクリプトを載せておくことにします。
……久しぶりにPythonの話をしたような気がする。技術的な新規性は皆無な記事ですけどw
import csv
import datetime
import json
import sys
def main(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
records = [{
'member': log['user_profile']['display_name'],
'time': datetime.datetime.fromtimestamp(int(log['ts'].split('.')[0])).strftime('%H:%M:%S'),
'text': log['text'],
} for log in json.load(f)]
with open(output_file, 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['member', 'time', 'text'])
writer.writeheader()
writer.writerows(records)
if __name__ == '__main__':
main(sys.argv[1], sys.argv[2])