我正在对视图中的一个表执行一个查询,并将数据传递给上下文字典:
conn = psycopg2.connect(constr)
cur = conn.cursor()
sqlstr = "SELECT DISTINCT adm0_name FROM wld_bnd_adm0_gaul_2015 ORDER BY adm0_name;"
cur.execute(sqlstr)
countries = cur.fetchall()
ctx['countries'] = countries然后,我希望按照以下方式呈现模板中的数据:
{% if countries %}
{% for cntr in countries %}
<li><a href="#" id= {{ cntr }}>{{ cntr }}</a></li>
{% endfor %}
{% endif %}问题是,我得到了如下unicode格式:
[(u'Abyei',), (u'Afghanistan',), (u...我试图将视图中的数据转换为JSON:
countries = json.dumps(countries)但是实际上,当我在模板中呈现数据时,我会分别得到JSON字符串的每个字符。
发布于 2016-05-30 09:00:39
正如docs fetchall中提到的,它返回一个元组列表,因此每个国家名都在列表中的一个元组中。你需要把名单弄平才能得到国家名单。
countries = cur.fetchall()
countries = [c[0] for c in countries]
ctx['countries'] = countrieshttps://stackoverflow.com/questions/37521310
复制相似问题