Как добавить поддержку 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)
→ Ссылка