我从存储在数组中的数据库中获取数据,我必须将此数组的输出与字符串匹配。但是数组将结果输出为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',))
所以请建议我一些方法,以便我可以匹配给定字符串的数组元素。
由于
答案 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