當我使用 Rest API 從 Firebase 下載資料時,它看起來像這樣。
{
"Dataset1": [
null,
{
"Key1": 1,
"Key2": 2
},
{
"Key1": 3,
"Key2": 4
}
],
"Dataset2": [
null,
{
"Key1": 1,
"Key2": 2
},
{
"Key1": 3,
"Key2": 4
}
]
}
null是否可以在將資料保存到檔案之前洗掉該值?我知道null存在是因為我如何設計資料庫,但現在重新設計資料為時已晚。我試過is_not了,但還沒有運氣。
uj5u.com熱心網友回復:
看起來您已經在資料庫中存盤了具有順序遞增鍵的節點(即“1”、“2”、“3”)。當您執行此操作時,Firebase 會將其解釋為陣列結構,并在您檢索它時將其強制轉換為(從零開始的)陣列。而且由于您沒有索引 0 的節點,因此它在null那里添加了一個。
為了防止這種陣列強制,使用非數字鍵存盤節點,例如通過在每個數字前面加上一個短的非數字值。像“key1”、“key2”、“key3”。
另見:
- 最佳實踐:Firebase 中的陣列。
uj5u.com熱心網友回復:
它似乎只是每個串列中的第一個元素。如果是這樣,您可以為此使用簡單的 dict 理解:
{k: v[1:] for k, v in data.items()}
如果沒有,您可以使用以下理解:
{k: [e for e in v if e != "null"] for k, v in data.items()}
uj5u.com熱心網友回復:
試試這個代碼:
Dataset2 = list()
for data in Dataset:
if data not null:
Dataset2.append(data)
Dataset = Dataset2
del Dataset2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/473593.html
標籤:Python json python-3.x firebase-实时数据库
下一篇:誰能解釋這段代碼背后的邏輯
