python-can不能从sqlalchemy获得utf-8字符串?

时间:2016-02-10 09:42:54

标签: python sqlalchemy flask-sqlalchemy

我试图使用SQLAlchemy获取一些字符串。

tags = db.session.query(Tag.tag_name).order_by(Tag.tag_id).all()

db是我的sqlite数据库。 tag_name个实体为VARCHAR

当我调试程序时,它显示标签变量是

{list}[(u'python',),(u'\u7f51',)]

此处\u7f51是中文字符。

由于该项目基于Flask框架,因此我使用Jinja2tags中显示每个标记。

{% for tag in tags %}
<li><a href="#">{{tag}}</a></li>
{% endfor %}

在网页上显示的内容与(u'python',)完全相同。 我希望网页显示python之类的内容,但我不知道如何处理这个奇怪的列表对象。我该怎么办?

1 个答案:

答案 0 :(得分:0)

这应该非常直截了当。查询结果集以tuple格式获得。所以你有一个元组列表。对于非utf8 字符,使用encode函数并使用list comprehension生成字符串列表。

你可以这样做:

tags = [r(0).encode('utf8') for r in tags]