Python 为什么查询显示第一个匹配的每个字母?
在Python 为什么查询显示第一个匹配的每个字母?,python,google-app-engine,Python,Google App Engine,在Owner中,我有属性“Owner”和“Owner\u tag” 我通过owner进行查询,然后尝试打印owner\u标签以获得匹配结果。但我得到的是第一个匹配的所有者标签的每个字母: 因此,在Owner 所有者:az@example.com拥有所有者标签:tag1、tag2、tag3 查询匹配“tag1”,并循环通过“t”、“a”、“g”、“1”。我不明白为什么 代码如下: query = Owner.all() query.filter("owner", user) w = query.g
Owner
中,我有属性“Owner”
和“Owner\u tag”
我通过owner
进行查询,然后尝试打印owner\u标签
以获得匹配结果。但我得到的是第一个匹配的所有者标签的每个字母:
因此,在Owner
所有者:az@example.com拥有所有者标签:tag1、tag2、tag3
查询匹配“tag1”
,并循环通过“t”
、“a”
、“g”
、“1”
。我不明白为什么
代码如下:
query = Owner.all()
query.filter("owner", user)
w = query.get()
for tag in w.owner_tag:
self.response.out.write("""
%s, %s""" %
(tag, w.tag_value))
更新
如果我使用fetch()。但是,由于我不知道要获取的项目数,如何在不指定数字的情况下获取所有项目。我认为get()
获取了所有匹配项:
query = Owner.all()
query.filter("owner", user)
w = query.fetch(10)
for tag in w:
self.response.out.write("""
%s, %s""" %
(tag.owner_tag, tag.tag_value))
你能解释一下为什么上面的代码有效,而原始的带有get()
的代码无效吗?总是返回一个结果或None
,当你迭代一个字符串时,每个值都是一个字符。使用可选的offset
参数按照您的想法工作,这样您可以根据需要翻页查看结果
fetch()
如果您想要所有结果,并且不介意将其留给appengine来决定在其中检索它们的往返次数,您可以迭代查询:for tag in query.filter(“owner”,user)
始终返回单个结果或None
,当您迭代单个字符串时,每个值都是一个字符。使用可选的offset
参数按照您的想法工作,这样您可以根据需要翻页查看结果
fetch()
如果您想要所有结果,并且不介意将其留给appengine来决定在其中检索它们的往返次数,您可以在查询中迭代:for tag in query.filter(“所有者”,user)
查询是返回字符串集合还是只返回单个字符串?@Lasse V.Karlsen:我如何检查logging.info
forw
只告诉我它是w:get
返回一个结果fetch
返回一个结果数组。查询是返回一组字符串还是只返回一个字符串?@Lasse V.Karlsen:如何检查logging.info
forw
只告诉我它是w:get
返回一个结果fetch
返回结果数组。