Как добавить поддержку UTF-8?
Pаботаю с json-файлом: загружаю его, преобразую в словарь, а далее выполняю действия. как можно добавить сюда поддержку кодировки utf-8?
import json
class JsonWorker():
def __init__ (self, file_name):
self.file_name = file_name
self.dict_name = json.load(open(file_name))
def addUser(self, user_id, userNick = "none", userVip = "none"):
self.dict_name.update({user_id: {"userNick": userNick, "userVip": userVip},})
json.dump(self.dict_name, open(self.file_name, 'w'), indent = 4)
def DelUserInfo(self, user_id, object="userInfo"):
if object == "userInfo":
self.dict_name.pop(user_id, None)
if object == "userVip":
self.dict_name[user_id]["userVip"] = "none"
if object == "userNick":
self.dict_name[user_id]["userNick"] = "none"
json.dump(self.dict_name, open(self.file_name, 'w'), indent = 4)
js = JsonWorker("baza.json")
js.addUser("пользователь")
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Решение:
- В open передавайте кодировку:
encoding="utf-8". Если не указывать кодировку, то будет использоваться системная - В json.dump указывайте
ensure_ascii=False. Этот параметр экранирует не ASCII символы, поэтому чтобы увидеть текст как есть, лучше выключать этот режим
Пример:
json.dump(self.dict_name, open(self.file_name, 'w', encoding="utf-8"), indent=4, ensure_ascii=False)