首页 > 解决方案 > 期待来自 Firebase 的 JSON 但得到一个列表

问题描述

我正在使用 python-firebase 库来访问 firebase 实时数据库。数据库的结构如图所示 当我使用 python 访问节点“PatientMaster”时,我得到一个没有 ID 的 JSON 列表,而不是得到一个正确的 JSON 键值格式。有人可以帮我吗?我为执行上述操作而编写的代码是:

firebase = firebase.FirebaseApplication('https://************.firebaseio.com', None)
result = firebase.get("/PatientMaster",None)

变量“结果”将输出作为没有 ID 的 JSON 列表提供给我。

标签: pythonandroidpython-3.xfirebasefirebase-realtime-database

解决方案


问题是您对节点“PatientMaster”中的记录使用顺序数字键,并且记录内容非常相似。Firebase RTDB(有时)将该结构解释为列表数组而不是映射数组。原因是当您将列表数组发布到 FB RTDB 时,它会将其存储为地图 (json),其中键为 0-n,列表项作为值。当您阅读数据库并看到此结构时,它认为它是一个存储的列表数组并返回它而不是映射(json)。看到这篇文章:https ://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html?m=1

您需要使您的键更复杂,或者测试/期望从该节点返回的数据是一个列表数组。


推荐阅读