代码之家  ›  专栏  ›  技术社区  ›  Jim Factor

如何在python中获取firebase数据库结果的第一项?

  •  1
  • Jim Factor  · 技术社区  · 8 年前

    我在用 Firebase Admin SDK 对于 Python 从实时数据库中获取数据,但所有示例似乎都使用for循环来迭代数据。

    from firebase_admin import db
    ref = db.reference('users')
    results = ref.order_by_child('name').equal_to(uniqueID).limit_to_first(1).get()
    
    3 回复  |  直到 8 年前
        1
  •  3
  •   Jim Factor    8 年前

    返回的类型 .get() 似乎总是一个 OrderedDict 即使在 limit_to_first(1) 习惯于只得到 1 结果。使用 .popitem() 获取第一个元素而不使用 for 循环。

    from firebase_admin import db
    ref = db.reference('users')
    results = ref.order_by_child('name').equal_to(uniqueID).limit_to_first(1).get()
    firstItem = results.popitem()
    
        2
  •  1
  •   Parth Bhoiwala    8 年前

    @吉姆的回答没错,但 popitem() 将从 results 字典。如果要获取第一个项目,可以使用执行以下操作:

    firstKey = next(iter(results.keys())) # Python 3.x
    firstKey = results.iterkeys().next()  # Python 2.x
    

    这将返回第一项的键。您可以使用 firstKey 这样地

    value = results[firstKey]
    

    希望有帮助!

        3
  •  1
  •   Hiranya Jayathilaka    8 年前

    因为你的 results 最多可以有1个项目,以下项目也将非常有效地运行:

    if results:
        key, val = results.items()[0]