どうせなら相互に変換できるツールの方が便利だろうと考え、前回のコードに加筆しました。
CSVファイルはExcelで開くため文字コードはshift-JIS、JSONファイルはVScodeなのでUTF-8とややこしめです。
ファイルパスの拡張子で変換方法を判断します。
# 途中から
if '.json' in path:
# JSONファイルをデータフレームとして読み込む
df = pd.read_json(path,lines=True)
# 変換先のCSVファイル名を作成する
csv_file = path.split('.')[0] + '.csv'
# データフレームをCSVファイルに変換する
df.to_csv(csv_file, encoding='Shift_JIS')
elif '.csv' in path:
# shift-JISからUTF-8への変換
utf_file = path.split('.')[0] + '_utf' + '.csv'
cmd = "nkf -w %s > %s" % (path, utf_file)
subprocess.call(cmd, shell=True)
# CSVファイルを辞書型として読み込み
json_list = []
with open(utf_file,'r') as f:
reader = csv.DictReader(f)
for row in reader:
json_list.append(row)
# 変換先のJSONファイル名を作成する
json_file = path.split('.')[0] + '.json'
# JSONファイル作成
with codecs.open(json_file, 'w','utf-8') as f:
json.dump(json_list,f,ensure_ascii=False)
root.mainloop()