У меня есть ответ AJAX, который возвращает объект JSON. Один из значений словаря должен читать:
"Изображение \/JPEG"
Но вместо этого он гласит:
"Изображения \\/JPEG"
Я просмотрел документацию по строковым литералам и как игнорировать escape-последовательности, и я попытался префикс строки с "r", но пока не повезло.
Мой JSON-кодированный словарь выглядит следующим образом:
response.append({'name': i.pk, 'size': False, 'type': 'image/jpeg'})
Помощь будет принята с благодарностью!
Согласно спецификации JSON, символ \
должен быть экранирован как \\
в JSON.
Таким образом, библиотека json Python верна:
>>> import json
>>> json.dumps({"type": r"image\/jpeg", "size": False})
'{"type": "image\\\\/jpeg", "size": false}'
Когда JSON анализируется/оценивается в браузере, атрибут type
будет иметь правильное значение image\/jpeg
.
Парсер JSON Python, конечно же, справляется с экранированием:
>>> print(json.loads(json.dumps({"type": r"image\/jpeg", "size": False}))["type"])
image\/jpeg
Мне очень странно, что для вашей библиотеки javascript требуется определенное значение для значения, похожее на то, что оно используется для идентификации типа mime ресурса.