gpt4 book ai didi

python:将字典序列化为简单的html输出

转载 作者:太空狗 更新时间:2023-10-29 22:05:13 24 4
gpt4 key购买 nike

使用应用引擎 - 是的,我了解所有关于 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com