Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用浮点数作为键的Firebase_Python_Json_Firebase - Fatal编程技术网

Python 使用浮点数作为键的Firebase

Python 使用浮点数作为键的Firebase,python,json,firebase,Python,Json,Firebase,我意识到,当将一些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"}, {"4

我意识到,当将一些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]/