使用應用程序引擎 - 是的,我知道所有關於django模板和其他模板引擎。讓我說我有一本字典或一個簡單的對象,我不知道它的結構,我想序列化爲HTML。python:將字典序列化爲簡單的html輸出
所以如果我有
{'data':{'id':1,'title':'home','address':{'street':'some road','city':'anycity','postal':'somepostal'}}}
想我想是,呈現使用某種形式的列表或表格可讀的html;
data:
id:1
title:home
address:
street: some road
city: anycity
postal:somepostal
現在我知道我能做到
for key in dict.items
print dict[key]
但不會潛入子值,並列出每個鍵,值對時鍵/值是一本字典 - 即地址字典。
他們是一個輕量級/快速的python模塊,可以很好地完成這個任務。或者沒有人有任何簡單的代碼,他們可以粘貼,可能會這樣做。
解決方案 這裏的所有解決方案都很有用。毫無疑問,pprint是打印字典的更穩定的手段,儘管它不能返回html附近的任何東西。雖然仍然可打印。
我結束了這個現在:
def printitems(dictObj, indent=0):
p=[]
p.append('<ul>\n')
for k,v in dictObj.iteritems():
if isinstance(v, dict):
p.append('<li>'+ k+ ':')
p.append(printitems(v))
p.append('</li>')
else:
p.append('<li>'+ k+ ':'+ v+ '</li>')
p.append('</ul>\n')
return '\n'.join(p)
它轉換成字典無序列表這是確定現在。一些CSS,也許一點點調整應該使它可讀。
我將獎勵回答上述代碼的人,我做了一些小的更改,因爲無序列表不是嵌套。我希望所有人都同意,提供的許多解決方案都證明是有用的,但上面的代碼呈現了字典的真實html表示形式,即使是粗略的。
不是一個學究,但你不能序列化你的字典,你打印(使用HTML格式)。 – Seth 2010-10-14 07:36:15
@seth是的,我猜serialize這個詞是錯過使用的。 – spidee 2010-10-14 07:37:27