Не сериализуется JSON строка

Рейтинг: 0Ответов: 1Опубликовано: 27.12.2014

Храню я в django следующее:

values = models.TextField(default='[]')  # Значения поля

При операции преобразования в список вылетает ошибка, что, мол, строка входная не может быть преобразована в json объект:

self.values = json.JSONDecoder().decode(self.values)

из-за того что, например, строка:

'[\\'22'\\']'

содержит экранирующие символы, когда я поднимаю поле из БД. Как это обойти? replace не поможет.

Ответы

▲ 1Принят

obj = json.JSONDecoder().decode(json_text) идентичен obj = json.loads(json_text).

В обратную сторону:

json_text = json.dumps(obj)

obj и json_text принципиально различны. Не стоит использовать одно и то же имя до и после сериализации как json текст. Это может внести путаницу.