Excelシートから日本語文字を読み取りたいと思っています。
openpyxlを使って、読み出しに成功したものの
sheets.cell(row=i, 1).value → Nameから読み込んだ日本語を正しく
表示させる方法をご教示頂けないでしょうか?
JSONには、日本語が出力されるようにしたいです。
パターン1・・・ensure_ascii=True →ユニコードが表示される
パターン2・・・ensure_ascii=false →文字化けする
【パターン1】
python
1dest10 = dict() 2book = openpyxl.load_workbook('C:\temp\abc.xls) 3sheets = sheet1 4path_w = 'out' 5 6 7for i in range(100): 8 Name = sheets.cell(row=i, 1).value 9 10 dest10 = { 11 "Name " : Name 12 } 13 14with open(path_w, mode='a') as f: 15 json_str = json.dumps(dest11, sort_keys=False, ensure_ascii=True, indent=4) 16 f.write(json_str + '\n')
json
1 { 2 "Name " : \u4fdd\u8b77\・・・ 3 }
【パターン2】
python
1dest10 = dict() 2book = openpyxl.load_workbook('C:\temp\abc.xls) 3sheets = sheet1 4path_w = 'out' 5 6 7for i in range(100): 8 Name = sheets.cell(row=i, 1).value 9 10 dest10 = { 11 "Name " : Name 12 } 13 14with open(path_w, mode='a') as f: 15 json_str = json.dumps(dest11, sort_keys=False, ensure_ascii=false, indent=4) 16 f.write(json_str + '\n')
json
1 { 2 "Name " : �ی�M 3 }
★Nameをprintすると日本語がちゃんと代入されていることが
確認できます。ファイルに出力すると上記結果となります。
★with open(path_w, mode='a',encoding='Shift_JIS') as f:としても
文字化けが解消しません
回答2件
あなたの回答
tips
プレビュー