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 и "крякозябры" пропадут.
