Python: Кирилица и json

Есть код:

import json

with open("index.json", "r") as read_file:
    data = json.load(read_file,)

print(json.dumps(data,sort_keys=False,indent=4,ensure_ascii=False,separators=(',', ': ')))

Есть index.json:

{
    "notes": [
        {
            "name":"Запись 1",
            "date": "date",
            "input": "Хеллоу",
            "tegs": ["первая","просто"]
        }
    ]
}

В консоли код даёт такой выхлоп:

введите сюда описание изображения

Собственно, что с именно русским текстом и как это исправить?


Ответы (1 шт):

Автор решения: Стас

Ваши файлы в Windows по умолчанию создаются в кодировке Windows 1251 (полностью русифицированая кодировка, стандартная, для систем Windows на русском языке).

А Python использует Utf-8 по умолчанию. Следовательно и пытается прочитать ваш файл в Utf 8. Из за несоответствия кодировок появляютя "крякозябры".

Вам достаточно добавить encoding="utf-8", например, так:

open(path, "r", encoding="utf-8")

Это укажет Python, что файл нужно преобразовать в Utf-8 и "крякозябры" пропадут.

→ Ссылка