2009-06-08 17 views
2

Ich verstehe, es ist nicht ein wünschenswerten Umstand, aber wenn ich eine Art von HTML innerhalb JSON-Tags benötigt, um, zum Beispiel:HTML-Tags innerhalb von JSON (in Python)

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

bin dies möglich, in Python zu tun, ohne muss man vorher entkommen?

Es wird zunächst eine Zeichenfolge sein, also habe ich darüber nachgedacht, einen regulären Ausdruck zu schreiben, um zu versuchen, diese vor der Verarbeitung abzugleichen, aber ich möchte nur sicherstellen, dass es keinen einfacheren Weg gibt.

Antwort

6

Nun, je nachdem, wie vielfältig Ihre HTML ist, können Sie einfache Anführungszeichen in HTML in Ordnung, verwenden, so könnten Sie tun:

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

jedoch mit simplejson, die in Python 2.6 als json module gebaut wird, es tut alles, was Sie brauchen automatisch zu entkommen:

>>> 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

genau das, was ich gesucht habe. Vielen Dank! – KeyboardInterrupt

0

Sie können beliebige Strings haben, einschließlich solcher, die HTML-Tags enthalten (das einzige Problem mit Ihrem Beispiel ist das innere ", das jeden Parser verwirren würde).