Возможно, этот поток данных равен JSON5 , и в этом случае для этого есть синтаксический анализатор: https://pypi.org/project/json5/
Эта ситуация может быть облегчена Подстановка регулярных выражений, которая ищет ", }
и заменяет ее на " }
, допуская любое количество пробелов между кавычками, запятыми и близкими кавычками.
>>> import re
>>> s = '{ "key1": "value1", "key2": "value2", }'
>>> re.sub(r"\"\s*,\s*\}", "\" }", s)
'{ "key1": "value1", "key2": "value2" }'
Предоставление:
>>> import json
>>> s2 = re.sub(r"\"\s*,\s*\}", "\" }", s)
>>> json.loads(s2)
{'key1': 'value1', 'key2': 'value2'}
РЕДАКТИРОВАТЬ: как прокомментировано, это не очень хорошая практика, если вы не уверены, что ваши данные JSON содержат только простые слова, и это изменение больше не портит поток данных.Как я прокомментировал OP, лучший способ действий состоит в том, чтобы восстановить восходящий источник данных.Но иногда это невозможно.