如何用'。'渲染键。在Pystache?

时间:2018-02-08 20:59:44

标签: python python-3.x python-2.7 mustache pystache

我的密钥名称中有.的字典。我查看了pystache的代码,找不到任何可以用.代替其他东西的东西。

似乎有一个替换分隔符的选项,但.没有。

示例:

>>> from pystache import Renderer
>>> renderer = Renderer()
>>> renderer.render("{{user.first.name}}", {"user": {"first.name": "xyz"}})
u''
>>> renderer.render("{{user.first.name}}", {"user": {"first": {"name": 
"xyz"}}})
u'xyz'
>>>

有什么方法可以使用不同的“分隔符”来遍历dicts吗?

2 个答案:

答案 0 :(得分:0)

似乎没有办法绕过它。

https://github.com/defunkt/pystache/issues/141

答案 1 :(得分:0)

设置分隔符标记以等号开头,并将标记分隔符从{{和}}更改为自定义字符串。

考虑以下设想的例子:

  
      
  • {{default_tags}}    - > {{= @ $ $ @ =}}

  •   
  • @ $ erb_style_tags $ @ - >   @ $ = {{}} = $ @

  •   
  • {{default_tags_again}}

  •   

这里有一个包含三个项目的列表。第一项使用默认标记样式,第二项使用由Set Delimiter标记定义的erb样式,第三项使用另一个Set Delimiter声明后返回默认样式。

但是胡须是一种逻辑较少的语法,如果是'。'将它放在小胡子分隔符内,然后它首先在点之前搜索字符串,如果没有找到,它将返回null。

在你的第一种情况下,它搜索了找到的用户,然后搜索了第一个(不是first.name),这个用户找不到并且返回了null。