miyakou
@miyakou

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

CSV⇒jsonファイルに変更した時に1行目だけに�が表示される。

Q&A

Closed

解決したいこと

タイトルの通り、jsonファイルに変更した時に一行目のみに�が表示されます。
VSCodeでは�で表記されていますが、メモ帳で表示すると消えます。

対処方法を教えて下さい。

発生している問題・エラー


[{"�name" : "yamada",
  "location" : "tokyo"},
 {"�name" : "suzuki",
  "location" : "tokyo"}] 

上記のエラーのように一行目の項目の初めに�が表示されています。

csv⇒jsonに変換するソースコード

import csv
import json

chart_list = []

with open('.csv') as f:
    for line in csv.DictReader(f):
        chart_list.append(line)


with open('.json', 'w') as f:
    json.dump(chart_list, f, ensure_ascii=False) 

with open('.json', 'r') as f:
    chart_output = json.load(f)
0

2Answer

name,location
yamada,tokyo
suzuki,tokyo

上のようなCSVファイルをJSONに変換しようとしているということであっていますか? であれば、対象のCSVファイルがUTF-8 BOM付になっているのだと思います。対処法はいろいろありますが

  • 入力となるCSVファイルをUTF-8 BOMなしにする
  • CSVの読み込み部分を以下のように変更する

などが考えられます

with open('.csv', encoding="utf_8_sig") as f:
    for line in csv.DictReader(f):
        chart_list.append(line)
2Like

試してみたらできました!
説明不足ですみません。

わかりやすく教えていただきありがとうございました

0Like

Your answer might help someone💌