- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用应用引擎 - 是的,我了解所有关于 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)
它将 dict 转换为无序列表,目前还可以。一些 CSS 和一些小的调整应该可以让它变得可读。
我将把答案奖励给编写上述代码的人,我做了一些小改动,因为无序列表没有嵌套。我希望所有人都同意所提供的许多解决方案被证明是有用的,但是上面的代码呈现了字典的真实 html 表示,即使是粗糙的。
最佳答案
pyfunc 制作的示例可以轻松修改以生成简单的嵌套 html 列表。
z = {'data':{'id':1,'title':'home','address':{'street':'some road','city':'anycity','postal':'somepostal'}}}
def printItems(dictObj, indent):
print ' '*indent + '<ul>\n'
for k,v in dictObj.iteritems():
if isinstance(v, dict):
print ' '*indent , '<li>', k, ':', '</li>'
printItems(v, indent+1)
else:
print ' '*indent , '<li>', k, ':', v, '</li>'
print ' '*indent + '</ul>\n'
printItems(z,0)
当然不是非常漂亮,但也许可以从某个地方开始。如果您只想可视化数据,pprint模块确实足够好。您可以在 pprint 的结果上使用“pre”标签并将其放在您的网页上。
pprint 版本看起来像这样:
import pprint
z = {'data':{'id':1,'title':'home','address':{'street':'some road','city':'anycity','postal':'somepostal'}}}
print '<pre>', pprint.pformat(z), '</pre>'
html 输出看起来像这样:
{'data': {'address': {'city': 'anycity',
'postal': 'somepostal',
'street': 'some road'},
'id': 1,
'title': 'home'}}
这不是漂亮,但它至少以更结构化的方式显示数据。
关于python:将字典序列化为简单的html输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930713/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!