我意识到,当将一些 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
这是某种错误还是我错过了什么?
它是有效的 JSON,但不是有效的 Firebase。它似乎不喜欢经期。如果您确实必须使用浮点数作为属性名称(这听起来有问题),您可以尝试用其他字符替换句点,例如下划线或逗号。
取自创建参考Firebase 文档中的页面:
字符集限制
请注意,用于构造 Firebase 引用的 URL 可以包含任何 unicode 字符,但以下字符除外:
- 。 (时期)
- $(美元符号)
- [(左方括号)
- ](右方括号)
- #(井号或井号)
- /(正斜杠)
以及 ASCII 控制字符 0-31 和 127。
您可以使用以下正则表达式检查这些字符是否存在:
/[\[\].#$\/\u0000-\u001F\u007F]/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)