我意识到,当将一些JSON数据推送到我的Firebase存储中时,我从服务器获得400 HTTP错误请求,其密钥是浮点数。以下是我得到的回复:
{"error" : "Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names."}
我发送的数据如下:
'[{"36.5": "4050952597550"}, {"41.5": "4050952597628"}]'
我相信它在Python中完全是一个有效的JSON字符串,因为我在编码/解码时没有错误。
import json
v = [{u'36.5': u'4050952597550'}, {u'41.5': u'4050952597628'}]
print v == json.loads(json.dumps(v))
True
这是某种错误还是我错过了什么?
答案 0 :(得分:7)
它是有效的JSON,但它不是有效的Firebase。它似乎不喜欢这些时期。如果你真的必须使用浮点数作为你的属性名称(这听起来有问题),你可以尝试用其他字符替换句号,如下划线或逗号。
摘自Firebase文档中的Creating References页面:
字符集限制
请注意,用于构建Firebase引用的网址可能包含除以下内容之外的任何unicode字符:
和ASCII控制字符0-31和127。
您可以使用此正则表达式检查这些字符是否存在:
/[\[\].#$\/\u0000-\u001F\u007F]/