我有一個顯示幾個值的HTML頁面。我還有一個小應用程序,用於顯示我擁有的其他一些頁面的數據,但這些其他頁面是JSON,而不是HTML。 我想從HTML頁面使用這些值,轉換爲JSON,然後輸出。Python - 序列化HTML並輸出爲JSON
我想這樣做的原因是,我可以簡單地重用我的代碼,只需更改URL,甚至動態創建它。
爲了使正則表達式更基本,我將HTML頁面儘量清晰,以便去除所有垃圾。
下面是HTML:
<div class="BlockA">
<h4>BlockA</h4>
<div class="name">John Smith</div>
<div class="number">2</div>
<div class="name">Paul Peterson</div>
<div class="number">14</div>
</div>
<div class="BlockB">
<h4>BlockB</h4>
<div class="name">Steve Jones</div>
<div class="number">5</div>
</div>
兩個塊將有元素的人數不等的幾個因素。
這裏是我的Python:
def index(request, toGet="xyz"):
file = urllib2.urlopen("http://www.mysite.com/mypage?data="+toGet)
data = file.read()
dom = parseString(data)
rows = dom.getElementsByTagName("BlockA")[0]
readIn = ""
for row in rows:
readIn = readIn+json.dumps(
{'name': row.getAttribute("location"),
'number': row.getAttribute("number")},
sort_keys=True,
indent=4)+","
response_generator = ("["+readIn[:-1]+"]")
return HttpResponse(response_generator)
所以這基本上是讀值(實際上,源是XML在這種情況下),通過他們循環,並輸出所有的值。
如果有人能指出我正確的方向,這將不勝感激。例如,閱讀標籤,如「BlockA」,然後標籤「名稱」和「數字」。
謝謝。
我實際上已經在我的views.py中定義了2個「視圖」,它們從2個xml文件(1個本地,1個遠程)獲取數據。這將是我的第三種觀點。所以我有,例如,mysite.com/view1/21,mysite.com/view2/12和myste.com/view3/{string}。 「字符串」視圖就是這個,所以我已經使用REST,我需要做的只是輸出HTML,以便我的JSON閱讀器可以解析它。這是「美麗的湯」嗎?我之前聽說過,看過一些例子,但從未用過它。 – eoinzy 2011-04-11 13:31:23
美麗的湯是解析HTML或XML結構。它甚至可以根據您的策略處理格式錯誤的HTML(非關閉塊)。但是,請仔細觀察一下。 – 2011-04-11 13:48:41