Google App Engine上的Jinja2中的千位分隔符出错

时间:2014-01-18 08:58:33

标签: google-app-engine python-2.7 youtube-api jinja2

我正在使用YouTube Data API。我正在尝试使用Google App Engine上的jinja2从我的HTML中的视频统计信息中显示viewCount。

当我在模板中指定常量值时,如:

{{ '{0:,}'.format(1234567890) }} 

输出正常:

 1,234,567,890

但是,如果我将代码指定为:

 {{ '{0:,}'.format(video_item.statistics.viewCount) }} 

它不起作用并显示内部服务器错误:

{{ '{0:,}'.format(vivi.statistics.viewCount) }}, ValueError: Cannot specify ',' with 's'.

我不确定这意味着什么。

然而,

{{video_item.statistics.viewCount}}

正常工作。有人可以帮帮我吗?感谢

2 个答案:

答案 0 :(得分:10)

@ matthias-eisen thankx的回答。它工作正常。在Jinja2中,int(some_string)不起作用。我用过:

some_string | int

所以我的问题应该是:

{{ '{0:,}'.format(video_item.statistics.viewCount | int) }}

答案 1 :(得分:3)

API将viewCount作为字符串传递(请参阅https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?part=statistics&id=I90H3dN2HbI&_h=2&)。

处理程序内部:

view_count = '{0:,}'.format(int(video_item.statistics.viewCount))

模板内部:

{{ view_count }}

另外:http://docs.python.org/2/library/string.html#format-specification-mini-language