0

我正在从存储在数组中的数据库中获取数据,我必须将此数组的输出与字符串匹配。但是数组将结果输出为 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',))

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

谢谢

4

2 回答 2

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 进行查询。

于 2013-01-18T11:31:32.810 回答
0

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

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

if "Aviesta" in fblike:
    like+=1
于 2013-01-18T11:17:25.293 回答