import json
with open(file_path) as file:
data = json.load(file)
Не знаю ответ ли это на Ваш вопрос, но когда есть задача читать валидный JSON из файла, пользуйтесь json.load.
json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)¶
Deserialize fp (a .read()-supporting file-like object containing a JSON document) to a Python object using this conversion table.
Взято из доки
Обычно эти параметры(ensure_ascii, sort_keys, indent) используют для красивой записи в json файл через json.dumps()
Если же вам надо красиво напечатать PythonObject в консоль, то советую обратить внимание на
pprint
from pprint import pprint
data = {'key1': 'value1', 'key2': {'key2.1': 'value2.1', 'key2.2': {'key2.2.1': 'value2.2.1', 'key2.2.2': 'value2.2.2'}, 'key2.3': 'value2.3'}, 'key3': 'value3'}
>>> pprint(data)
{'key1': 'value1',
'key2': {'key2.1': 'value2.1',
'key2.2': {'key2.2.1': 'value2.2.1', 'key2.2.2': 'value2.2.2'},
'key2.3': 'value2.3'},
'key3': 'value3'}
P.S скорее всего проблема в открытии файла , попробуйте передать в open дополнительный параметр encoding