首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将python对象呈现为HTML -简单类型但嵌套-在django中

将python对象呈现为HTML -简单类型但嵌套-在django中
EN

Stack Overflow用户
提问于 2014-04-03 03:07:24
回答 1查看 1.4K关注 0票数 0

将Python对象转换为HTML (表或框架集)以在django中呈现

对于如何通过任意python对象属性迭代并将其呈现为html,有什么建议吗?不需要调用任何方法。对象将包含:字符串、整数、日期时间、这些类型的列表以及其他类似的python对象(不同的类,但仍然是字符串、整数、日期时间、列表.)。筑巢深度可达5-6级。

我希望呈现为html (类似于表或框架集等),并在html中为将来的CSS设置class / id (在这个问题中不需要深入研究css )。下面是一个简化的示例Python对象:

代码语言:javascript
复制
name    : Mr sandman
addr    :
        street 1: 123 main st
        street 2: None
        city    : Los angeles
        state   : ca
        zip     : 90001

events :[
        date_of_birth : datetime(2013, 01, 01) ,
        date_of_grad  : None
        ]
is_married : False
has_children : None
awards:[
        (award:
            name   : bravery
            date   : datetime(2010,01,01)), 
        (award:
            name   : courage
            date   : None ),
        ]

或者,将类似的json呈现到html也是有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 03:54:47

最简单的方法是首先将python对象转换为JSON。然后使用多个json到html转换器中的一个。例:https://github.com/bloopletech/json2html/tree/master

演示output

因为python对象包括datetime类型,所以需要首先对json解码器进行扩展。

代码语言:javascript
复制
import json
def extend_json(obj):
    if isinstance(obj, date):
        return str(obj)
    elif isinstance(obj, datetime):
        return obj.strftime("%Y-%m-%d %H:%M:%S")
    elif isinstance(obj, Decimal):
        return float(obj)

data = json.dumps(obj, indent=4, sort_keys=True, default=extend_json)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22827118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档