当我知道查看数据存储中是否存在匹配的条目时,在执行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都是可索引的)
最佳答案
在查看元组时,您似乎具有包含引号的字符串:
(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
关于python - google app引擎-数据存储区过滤未按预期检索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14326335/