csv形式でとってきたファイルをjsonに書き出したいです。
pythonは少しかじった程度で、文字コードなどはよくわかっていません。
以下、組んでいるコードです。
発生している問題、エラーメッセージ
UnicodeEncodeError: 'cp932' codec can't encode character '\ufeff' in position 12: illegal multibyte sequence
該当のソースコード
python
1# -*- coding: utf-8 -*- 2 3import json 4import csv 5import codecs 6 7json_list = [] 8 9# CSV ファイルの読み込み 10with codecs.open('20220325.csv', 'r', 'utf-8-sig') as f: 11 for n,row in enumerate(csv.reader(f)): 12 if n == 0: 13 first = row 14 else: 15 for i,row2 in enumerate(row): 16 if i == 11 or i == 12: 17 pass 18 19 json_list.append(row) 20 21# JSON ファイルへの書き込み 22with codecs.open('test_20220325.json', 'w') as f: 23 json.dump(json_list, f, indent = 4, ensure_ascii=False) #"ensure_ascii=False"を指定 24 25# JSONファイルのロード 26with open('test_20220325.json', 'r') as f: 27 json_output = json.load(f)
utf-8で書き出したいのですが、BOM?が邪魔をしていたのでutf-8-sigにしています。
これだとjsonに書き込めはするのですが文字化けがしてしまっています。
何かいい方法などあればご教授お願いします
回答1件
あなたの回答
tips
プレビュー