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

まず、コメントではなく、質問の更新としてコードを投稿する必要があります。

次に、Django の ORM を使用するのではなく、手動の SQL クエリを介してデータにアクセスしている理由がわかりません。通常の方法で行っていれば、この問題は発生しませんでした。

最後に、あなたの問題はエンコーディングとは何の関係もありません。あなたのデータは次のとおりです(明確にするために再投稿):

((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',))

これはタプルのタプルです。データの各行はタプルで表され、その行内の各列はタプルです。あなたの場合、1 つの列のみを選択しているため、単一要素のタプルのタプルがあります。つまり、ループの各反復には、文字列ではなくタプルがあります。

これはうまくいきます:

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 に答える