Одинарные кавычки, как и ваши данные, не соответствуют JSON. Однако вы все равно можете использовать его, если замените его двойными кавычками (если все ваши данные будут такими):
>>> a = "{'sends': 0, 'opens': 0, 'clicks': 0, 'forwards': 0, 'unsubscribes': 0, 'bounces': 0, 'spam_count': 0}"
>>> import json
>>> json.loads(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python37\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Python37\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Python37\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Это другой модуль и другое выражение, но в основном та же ошибка. Мы исправляем это следующим образом:
>>> json.loads(a.replace("'", '"'))
{'sends': 0, 'opens': 0, 'clicks': 0, 'forwards': 0, 'unsubscribes': 0, 'bounces': 0, 'spam_count': 0}
Обратите внимание, что я использовал a.replace("'", '"')
, чтобы исправить проблему, это может завершиться ошибкой, если ваши данные содержат более сложные объекты