2

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

说,我有urladdurl带有身份验证令牌的位置)。在该位置,我想推一个string,比如说International。根据这里的答案,我尝试了

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))

谢谢你的帮助。

4

2 回答 2

2

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

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

curl -X POST -d "\"国际\"" https://...

于 2013-02-15T05:16:32.530 回答
2

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

import simplejson as sjson

data = sjson.dumps("International")

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

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

于 2013-02-15T12:27:50.670 回答