[PYTHON] Lösen Sie UnicodeDecodeError im kivy JsonStore auf

Problem Fehler

Beim Umgang mit json mithilfe des Speichermoduls in Kivy ist der folgende Fehler aufgetreten.

   File "C:\programing\project\hoge\main.py", line 33, in _init_load
     self.store = JsonStore('test.json', )
   File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\storage\jsonstore.py", line 29, in __init__
     super(JsonStore, self).__init__(**kwargs)
   File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\storage\__init__.py", line 134, in __init__
     self.store_load()
   File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\storage\jsonstore.py", line 43, in store_load
     data = fd.read()
 UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 85: illegal multibyte sequence

Es ist ein Unicode-Dekodierungsfehler, der vom Gesicht der Eltern aus gesehen wird. Liegt es daran, dass es Japanisch enthält? Dieser Fehler kann grundsätzlich behoben werden, indem dem Argument der offenen Funktion encoding = 'utf-8' hinzugefügt wird. Aus diesem Grund wird der Teil, der die JSON-Datei im Speichermodul öffnet, schnell geändert. Da in der 31. Zeile eine Funktion zum Lesen vorhanden ist, fügen Sie dem offenen Teil dort ein Schlüsselwortargument hinzu.

kivy/storage/jsonstore.py


def store_load(self):
        if not exists(self.filename):
            folder = abspath(dirname(self.filename))
            if not exists(folder):
                not_found = IOError(
                    "The folder '{}' doesn't exist!"
                    "".format(folder)
                )
                not_found.errno = errno.ENOENT
                raise not_found
            return
        with open(self.filename, encoding='utf-8') as fd:    #Hier
            data = fd.read()
            if len(data) == 0:
                return
            self._data = loads(data)

Ergebnis

Es gelang, normal zu lesen. Japanisch ist verwirrend. .. ..

Recommended Posts

Lösen Sie UnicodeDecodeError im kivy JsonStore auf
UnicodeDecodeError in pandas read_csv
Ich bekomme einen UnicodeDecodeError mit mecab-python3
UnicodeDecodeError tritt in pip auf (Windows-Umgebung)