首页 > 解决方案 > 使用通过 python 发送的 firebase 数据集

问题描述

我正在测试我在 Firebase 上的数据集。

Firebase 快照 使用此指令

 result = firebase.get('/Lot',"I") #THIS PULLS THE DATASET FROM FIREBASE

当我在 python 中使用 firebase.get 指令时,我得到以下信息。

runfile('C:/Users/Maint.Tech/parking_app/firebase_test.py', 
wdir='C:/Users/Maint.Tech/parking_app')
[None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 
0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 
1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 
0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 
1, 0, 1, 1, 1, 0]
  1. 什么是“无”? 当我在“无”之后操作数字时,一切都正确地反映在数据集中。
  2. 从 python 我试图在 python 中获取一个数组并通过 json 列表发送它。我将如何设置 python 数组以反映发送到 firebase 的正确结构?这是我发送的正确更新数据集的指令。只需要弄清楚如何正确编写python..

send_data = firebase.put('/Lot','I',[None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0])

谢谢你。

标签: pythonfirebasefirebase-realtime-database

解决方案


Firebase 本身并不存储数组。当您向它发送一个数组时,它会将来自该数组的项目存储在数字属性中。

因此,如果您将以下数组存储在 JavaScript 中:

ref.set([ first, second, third ]);

Firebase 实际上将其存储为:

{
  "0": "first",
  "1": "second",
  "2": "third"
}

现在,如果您从数据库中删除第一项,并将结果读回 JavaScript 中的数组,您将得到:

[ undefined, "second", "third" ]

最后一个似乎与您在 Python 脚本中的内容非常接近。

但在这种情况下,这只是背景信息。看起来您实际上是在将None自己发送put到 Firebase。如果您不想None在那里,请不要发送它,而是这样做:

send_data = firebase.put('/Lot','I',[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0])

推荐阅读