读取CSV文件并在Python中将数据传递给Jinja模板

时间:2015-08-03 21:50:05

标签: python csv jinja2

我正在尝试使用jinja2构建配置文件。 我在csv中有一堆数据,我想用于jinja2模板。

我可以打开并阅读csv文件,但不知道如何让jinja2从CSV读取数据并将其添加到模板的变量中。 这是我配置的开始:

import jinja2
import csv

with open('dhcpd.csv', 'rb') as csvfile:
    build = csv.reader(csvfile)

env =   jinja2.Environment(loader=jinja2.FileSystemLoader('/templates'))
template = env.get_template('dhcpd-build')

我知道我是一个公平的道路,但任何帮助都会很棒

2 个答案:

答案 0 :(得分:1)

这里的过程是

示例:

data = list(data)
result = template.render(data=data)

然后您可以在模板中迭代数据:

{% for row in data %}
    {{ row }}
{% endfor %}

代码在现实生活中未经过测试,我写下了我的脑袋。

答案 1 :(得分:0)

代码现在看起来像

import jinja2
import csv

with open('dhcpd.csv', 'rb') as infile:
  reader = csv.reader(infile)
  build = list(reader)


env = jinja2.Environment(loader=jinja2.FileSystemLoader('/Users/Luca/Git/ztp/templates'))
template = env.get_template('dhcpd-build')
for data in build:
  print template.render(data=build)

它呈现模板,但没有来自我的csv文件的任何变量