我正在尝试使用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))
感谢您的帮助。
答案 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()
的输入。