【发布时间】:2019-04-18 13:18:25
【问题描述】:
使用应用引擎 - 是的,我了解 django 模板和其他模板引擎。
假设我有一个字典或一个简单的对象,我不知道它的结构,我想将它序列化为 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 是的,我想 serialize 这个词被误用了。
标签: python