HTML-теги в JSON (в Python) - PullRequest
2 голосов
/ 08 июня 2009

Я понимаю, что это нежелательное обстоятельство, однако, если мне НЕОБХОДИМО иметь какой-то HTML-код в тегах JSON, например ::

{
    "node":
    {
        "list":"<ul><li class="lists">Hello World</li><ul>"
    }
}

возможно ли это сделать в Python без необходимости экранирования заранее?

Первоначально это будет строка, поэтому я думал о написании регулярного выражения, чтобы попытаться сопоставить их и избежать перед обработкой, но я просто хочу убедиться, что нет более простого способа.

Ответы [ 2 ]

6 голосов
/ 08 июня 2009

Ну, в зависимости от того, насколько разнообразен ваш HTML, вы можете использовать одинарные кавычки в HTML, так что вы можете сделать:

{
    "node":
    {
        "list": "<ul><li class='lists'>Hello World</li><ul>"
    }
}

Тем не менее, с simplejson, который встроен в Python 2.6 как json-модуль , он автоматически выполняет любое необходимое вам экранирование:

>>> import simplejson
>>> simplejson.dumps({'node': {'list': '<ul><li class="lists">Hello World</li><ul>'}})
'{"node": {"list": "<ul><li class=\\"lists\\">Hello World</li><ul>"}}'
0 голосов
/ 08 июня 2009

У вас могут быть произвольные строки, в том числе те, которые содержат HTML-теги (единственная проблема в вашем примере - это внутренняя ", которая запутает любой синтаксический анализатор).

...