如何在Python和Firebase中使用requests添加数据而不是替换数据

1 投票
1 回答
2864 浏览
提问于 2025-04-17 22:29

我正在使用 requests 模块来获取和设置 Firebase 中的数据。假设我有一个现成的 Firebase,地址是 http://mytest.firebaseio.com,它的内容看起来是这样的:

|somewhere
  |--test1
    |--exists: 1

我想在这个数据中添加一些内容,让它变成:

|somewhere
  |--test1
    |--exists: 1
    |--arrived: 1

我的直觉是使用 put() 方法,比如:

r = requests.put('http://mytest.firebaseio.com/test1.json',data='{"arrived":1}')

但是这样做会导致 覆盖 原本的 exists: 1,同时添加 arrived: 1,结果变成:

|somewhere
  |--test1
    |--arrived: 1

我该如何在不覆盖 exists: 1 的情况下添加 arrived: 1 呢?

1 个回答

3

来自文档

你可以通过PATCH请求来更新某个位置的特定子项,而不会覆盖已有的数据。使用PATCH写入的数据中指定的子项会被更新,但没有提到的子项不会被删除。这和update()函数的效果是一样的。

所以你应该使用requests.patch(),而不是requests.put()

撰写回答