【问题标题】:Push a raw value to Firebase via REST API通过 REST API 将原始值推送到 Firebase
【发布时间】:2013-01-30 23:35:34
【问题描述】:

我正在尝试使用 Python 中的 requests 库将数据(原始值)推送到 firebase 位置。

说,我有urladd(带有身份验证令牌的位置的url)。在该位置,我想推一个string,比如International。根据here的回答,我试过了

data = {'.value': 'International'}

p = requests.post(urladd, data = sjson.dumps(data))

我收到<Response [400]>p.text 给我:

u'{\n  "error" : "Invalid data; couldn\'t parse JSON object, array, or value. Perhaps you\'re using invalid characters in your key names."\n}\n'

他们的密钥.value 似乎无效。但这就是上面链接的答案所暗示的。知道为什么这可能不起作用,或者我如何通过 Python 做到这一点?连接或身份验证没有问题,因为以下工作。但是,这会推送一个对象而不是原始值。

data = {'name': 'International'}

p = requests.post(urladd, data = sjson.dumps(data))

感谢您的帮助。

【问题讨论】:

  • 作为一种解决方法,您不能在路径上向上移动一级吗?例如,如果我尝试将 myinstance.firebaseio.com/some/place 设置为“International”:`requests.post('myinstance.firebaseio.com/some', {place: "International"});跨度>

标签: python firebase


【解决方案1】:

您链接的答案是您想要为某个值分配优先级的特殊情况。一般来说,'.value' 是一个无效的名称,会引发错误。

如果您只想编写“国际”,则应编写该数据的字符串化 JSON 版本。我面前没有 python 示例,但是 curl 命令是:

curl -X POST -d "\"International\"" https://...

【讨论】:

  • 谢谢,安德鲁。对于其他正在寻找如何在 Python 中执行此操作的人,我在下面发布了一个答案。
【解决方案2】:

安德鲁上面的回答有效。如果其他人想知道如何使用 Python 中的 requests 库来做到这一点,我认为这会有所帮助。

import simplejson as sjson

data = sjson.dumps("International")

p = requests.post(urladd, data = data)

出于某种原因,我认为数据在转换为字符串化 JSON 版本之前必须采用字典格式。事实并非如此,一个简单的字符串可以用作sjson.dumps() 的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多