1

gql.queryを実行し、一致するエントリがあることをデータストアで確認したときに結果が得られない-誰か?多分それは私の変数のフォーマットと関係がありますか?

for each in leveloneAdd:
    new = tuple(each[1:-1].split(','))
    tag = new[0]
    htype = new[1]

    q1 = Level_1_Headings.all().filter("name1 =",tag).filter("heading_type =",htype).get()

だから私のログで:変数の値が次のとおりであることを確認しました:

INFO     2013-01-14 20:28:38,370 main.py:293] new is (u"'english'", u" 'subject'")
INFO     2013-01-14 20:28:38,370 main.py:295] tag is 'english'
INFO     2013-01-14 20:28:38,370 main.py:297] heading type is  'subject'

また、エントリが終了することを確認しました(name1とheading_typeの両方がインデックス可能です)

4

1 に答える 1

2

タプルを見ると、引用符を含む文字列があるように見えます。

(u"'english'", u" 'subject'")

したがって、それらを照会しようとすると、'english'代わりに照会englishしていることになります。これは、必要だと思います。可能であれば、元の文字列から引用符を削除して、結果が期待どおりに返されるかどうかを確認してください。ここで違いを確認できます。

In [61]: t = (u"'english'", u"'subject'")

In [62]: a, b = t

In [63]: print a, b
'english' 'subject'

In [64]: t = (u"english", u"subject")

In [65]: a, b = t

In [66]: print a, b
english subject

これを修正するには、次のような方法を試すことができます(注:の前に先頭のスペースがsubjectあるため、調整が必要になる場合があります)。

In [68]: a, b = [i.strip("'") for i in t]

In [69]: a, b
Out[69]: (u'english', u'subject')

In [70]: print a, b
english subject
于 2013-01-14T20:59:33.667 に答える