Home > Software design >  Encoding Chinese characters to open JSON file in python
Encoding Chinese characters to open JSON file in python

Time:08-02

I am unable to open a json file containing chinese and english characters. I have tried using-

with open('.//train//chess.json') as f:
    d = json.load(f, encoding = "UTF-8")

I have also tried other encodings (Latin-1, UTF-16, UTF-32, BIG5, GB) too but none of them work. Here is the json file as it shows in notepad -

{ "name": "tournament_test_2", "start_date": "2020-01-20", "end_date": "2020-02-09", "games": { "tour_1": [ { "white": "吕亚光", "black": "胡建静", "date": "2020-01-20", "id": "tournament_test_2_1" }, { "white": "崔军凯", "black": "陈森", "date": "2020-01-20", "id": "tournament_test_2_2" }, { "white": "丁晨彤", "black": "董海非", "date": "2020-01-20", "id": "tournament_test_2_3" }, { "white": "傅星菲", "black": "张春", "date": "2020-01-20", "id": "tournament_test_2_4" }, { "white": "魏辟涛", "black": "黄凯文", "date": "2020-01-20", "id": "tournament_test_2_5" } ] }, "tours": 1, "time_control": "classic" }

Here is the image of the data for a clearer picture - enter image description here

I get the following error -

File "C:\Users\Asus-ROG\Desktop\Machine learning\hands-on\Chess\chess1.py", line 14, in d = json.load(f, encoding = "UTF-8")

File "C:\Users\Asus-ROG\anaconda3\envs\tf\lib\json_init_.py", line 293, in load return loads(fp.read(),

File "C:\Users\Asus-ROG\anaconda3\envs\tf\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0]

UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 180: character maps to

CodePudding user response:

Your character decoding goes in the file open() method, rather than the json load() method:

import json
with open('chess.json', encoding='utf-8') as f:
    d = json.load(f)
  • Related