使用jinja和sqlite将db值打印为字符串

时间:2017-08-01 16:26:39

标签: python sqlite jinja2

我在烧瓶应用程序中运行两个脚本,结果不同。 第一个将数据库值作为字符串返回:

for row in cursor.execute("SELECT tweet,sentiment FROM thistable 
    WHERE sentiment > 70 AND  +keyword=? ORDER BY sentiment DESC", (query,)):
    bestlist.append(row)

HTML:

{% for tweet, sentiment in bestlist %}

<h3>{{ tweet }}</h3>>
<h5>Score : {{ sentiment }}</h5>

{% endfor %} 

输出

Lorem ipsum dolor sit 
Score : 94.9
Ameat valc simon chaq
Score : 88.2

第二个我只从列表中获取一个值:

for row in cursor.execute("SELECT DISTINCT keyword FROM thistable"):
 last_keys.append(row)

HTML:

{% for row in last_keys %}
<h3>{{ row }}</h3>
{% endfor %} 

同样的事情......

{% for keyword in last_keys %}
<h3>{{ keyword}}</h3>
{% endfor %}

输出:

(u'Nasdaq',)
(u'Russia',)
(u'Samsung',)

我正在寻找的是:

Nasdaq
Russia
Samsung

谢谢!

1 个答案:

答案 0 :(得分:2)

只是不要附加整个row(它只包含一个列,而是作为一个元组),你应该得到你期望的结果:

for row in cursor.execute("SELECT DISTINCT keyword FROM thistable"):
    last_keys.append(row[0])

为了完整性,替代方法是在模板中迭代时显式访问第一行元素:

{% for row in last_keys %}
    <h3>{{ row[0] }}</h3>
{% endfor %}