質問: csv.writer(csvfile, delimiter=",") for jp in jp_list: w.writerow([jp]) ``` これでCSVファイルを作成すると、3行で1行ごとに1つのセルにのみ文字化けした文字が入ったファイルができます。 encodingも設定しており、どうやったら文字化けなく、各要素が一つのセルに入るようにCSVファイルを作成できますでしょうか?
回答: 作成されたCSVファイルは何で開きましたか? エクセルで開くと「3行で1行ごとに1つのセルにのみ文字化けした文字が入った」になるかもしれません。 これはエクセルがShit_JISで開いたからです。 UTF-8で保存しているのですから、それに対応したテキストエディタで開いてください。 【追記】今のコードですと出力結果は下記となります。 ['東北', '関東', '関西'] ['宮城県', '東京都', '京都'] ['仙台市', '新宿区', '京都市'] ~~元データがリストのリストになっていますので、出力するときにも二重のforループが必要です。~~ 下記で出来ました。 w.writerow([jp]) → w.writerow(jp) ※encoding='sjis'でエクセルでも開けるようになりますが、utf-8の方が良いと思います。