Python AJAX ответная строка

1

У меня есть ответ AJAX, который возвращает объект JSON. Один из значений словаря должен читать:

"Изображение \/JPEG"

Но вместо этого он гласит:

"Изображения \\/JPEG"

Я просмотрел документацию по строковым литералам и как игнорировать escape-последовательности, и я попытался префикс строки с "r", но пока не повезло.

Мой JSON-кодированный словарь выглядит следующим образом:

response.append({'name': i.pk, 'size': False, 'type': 'image/jpeg'})

Помощь будет принята с благодарностью!

  • 2
    Я не совсем понимаю. Должно ли значение быть "image / jpeg" или "image \ / jpeg"?
  • 0
    Это должно быть "изображение \ / JPEG". Я использую библиотеку Javascript, которая требует, чтобы она читалась таким образом.
Показать ещё 2 комментария
Теги:

1 ответ

1

Согласно спецификации 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 ресурса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню