I have this code:
keys_file = open("keys.json") keys = keys_file.read().encode('utf-8') keys_json = json.loads(keys) print(keys_json)
There are some none-english characters in keys.json. But as a result I get:
[{'category': 'мбт', 'keys': ['Блендер Philips', 'мультиварка Polaris']}, {'category': 'КБТ', 'keys': ['холод ильник атлант', 'посудомоечная машина Bosch']}]
what do I do?
encode
means characters to binary. What you want when reading a file is binary to characters → decode
. But really this entire process is way too manual, simply do this:
with open('keys.json', encoding='utf-8') as fh: data = json.load(fh) print(data)
with
handles the correct opening and closing of the file, the encoding
argument to open
ensures the file is read using the correct encoding, and the load
call reads directly from the file handle instead of storing a copy of the file contents in memory first.
If this still outputs invalid characters, it means your source encoding isn't UTF-8 or your console/terminal doesn't handle UTF-8.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With