django视图中数组的问题

时间:2013-01-18 10:58:03

标签: python django arrays encoding

我从存储在数组中的数据库中获取数据,我必须将此数组的输出与字符串匹配。但是数组将结果输出为Unicode格式(u'aviesta'),因此它与字符串不匹配。

我的代码。

// fblike is an arry in which the output of query stores.

for i in fblike:
  if i=="Aviesta":
    like=1
return render_to_response('showroom.html')

我也尝试将其编码为 variable.encode('utf8'),但它只编码数组的特定元素,例如i [0] .encode('utf8')但是我不知道哪个数组元素有aviesta作为值。因此我需要编码整个数组但我不知道该怎么做。

更新:: 在views.py中使用

cursor = connection.cursor()  
cursor.execute("SELECT name FROM django_facebook_facebooklike WHERE user_id = %s", request.user.id)  
rowfb = cursor.fetchall() return render_to_response('showroom.html',{'rowfb':rowfbthis}

在我的模板中打印{{rowfb}}变量 .. 结果数组

 ((u'Mukesh Chapagain',), (u'Ghrix Technologies Private Limited',), (u'FirstLALimo',), (u'Aviesta',), (u'Awkward Group',), (u'FB.Canvas.setDoneLoading',), (u'99recharge',), (u'AllThingsCustomized.com',), (u'celebrity aviesta',), (u'FTC',))

所以请建议我一些方法,以便我可以匹配给定字符串的数组元素。

由于

2 个答案:

答案 0 :(得分:1)

首先,您应该将代码作为问题的更新发布,而不是发表评论。

其次,我不知道你为什么要通过手动SQL查询访问数据,而不是使用Django的ORM。如果你以正常的方式完成它,你就不会遇到这个问题。

最后,您的问题与编码无关。您的数据如下(为清晰起见而转贴):

((u'Mukesh Chapagain',), (u'Ghrix Technologies Private Limited',), (u'FirstLALimo',), (u'Aviesta',), (u'Awkward Group',), (u'FB.Canvas.setDoneLoading',), (u'99recharge',), (u'AllThingsCustomized.com',), (u'celebrity aviesta',), (u'FTC',))

这是元组的元组。每行数据由元组表示,而该行中的每列又是一个元组。在您的情况下,因为您只选择一列,所以您有一个单元素元组的元组。这意味着,在循环的每次迭代中,您都有一个元组,而不是一个字符串。

这样可行:

for i in fblike:
  if i[0] == "Aviesta":
    like = 1

但说实话,你最好去做一个简单的Python教程,然后回到Django教程,学习如何通过ORM进行查询。

答案 1 :(得分:0)

我不知道你的问题是否与数组有关。

如果您只需要查找给定的字符串是否在您的数组中,您只需执行

即可
if "Aviesta" in fblike:
    like+=1