jinja2 json模板省略<key:“value”>pai

2024-10-03 23:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用jinja2模板在json中呈现数据

我把python数据作为

name = ['Mark', 'Smits', 'Roger']
age = [23, 45, 32]
gender = ['male','male']

我想用下面的模板把它写到json文件中

^{pr2}$

我要的是参赛作品[罗杰,32,(空)]

我的输出json文件应该如下所示:

{
  "resourceType" : "MyData",
  "name" : "Roger",
  "age" : "32",
}

现在看起来像

{
  "resourceType" : "MyData",
  "name" : "Roger",
  "age" : "32",
  "gender":"",
}

我试过在jinja使用过滤器,但没有真正起作用。在


Tags: 文件数据name模板jsonjinja2agegender
1条回答
网友
1楼 · 发布于 2024-10-03 23:25:30

问题是在生成字典后清理空键。我通过使用循环成功地做到了这一点,但可能有更好的方法来实现这一点。在

name = ['Mark', 'Smits', 'Roger']
age = [23, 45, 32]
gender = ['male','male']

item_count_max = max(len(name), len(age), len(gender))

name = name + [None, ] * (item_count_max - len(name))
age = age + [None, ] * (item_count_max - len(age))
gender = gender + [None, ] * (item_count_max - len(gender))

import json
for n, a, g in zip(name, age, gender):
    data = {
        'resourceType': 'MyData',
        'name': n,
        'age': a,
        'gender': g
    }
    items = data.items()
    for k, v in items:  # We remove empty keys here
        if not v:
            data.pop(k)
    print(json.dumps(data, indent=4))

相关问题 更多 >