sql server数据库结果集上的Python Unicode问题

时间:2015-06-11 06:35:52

标签: python unicode utf-8

我正在尝试使用Python 2.7(烧瓶)将数据库结果检索到网页,但仍然遇到unicode问题。以下是我正在使用的代码

def formval():
    # --connection syntax here--
    cursor = connection.cursor()
    if request.method == 'POST':
    x = request.form['weekno']
    cursor.execute("SELECT Document FROM Backlog where custno=?",x)
    result = cursor.fetchall()
    return render_template('home.html',weekno=result)

home.html

{% for docno in weekno %}
  <p>{{ docno }}</p>
{% endfor %}

输出:这给我输出如下

 u'sp234780'
 u'sd257679'
---------
---------

但是当我使用return render_template('home.html',weekno=result[0])时,我的输出只是sp234780,但只有第一行而不是整个结果。

我已经浏览了所有与编码有关的帖子,并尝试使用encode('utf-8'),sys.setdefaultsetting(utf-8)等但没有运气

请建议

2 个答案:

答案 0 :(得分:1)

查询返回一个元组元组。您遍历行的元组,但每行本身是一个元组,包含一个元素。您需要访问元素本身。

{% for docno in weekno %}
   <p>{{ docno[0] }}</p>
{% endfor %}

答案 1 :(得分:0)

您可以在

行后添加一行
result = cursor.fetchall()

添加:

result = [str(res) for res in result]