通过REST API将原始值推送到Firebase

时间:2013-02-15 01:41:19

标签: python firebase

我正在尝试使用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))

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您想要为某个值指定优先级时,您链接的答案是一种特殊情况。通常,'。value'是一个无效的名称,会抛出错误。

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

卷曲-X POST -d“\”国际\“”https:// ...

答案 1 :(得分:2)

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

import simplejson as sjson

data = sjson.dumps("International")

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

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