Python 2.7 如何将python json.dumps作为一个有效负载存储到firebase中;不使用firebase自动在每个对象前面创建索引
第一次贴海报,我不是一个真正的开发人员,所以透视图总是很受欢迎:) 目标:Python 2.7 如何将python json.dumps作为一个有效负载存储到firebase中;不使用firebase自动在每个对象前面创建索引,python-2.7,firebase-realtime-database,Python 2.7,Firebase Realtime Database,第一次贴海报,我不是一个真正的开发人员,所以透视图总是很受欢迎:) 目标: 我试图将一个json.dumps(mergedFile)作为一个有效负载放入(或修补)firebase,而firebase不会在每个对象前面自动创建索引(0、1等) 问题陈述: 我正在将以下json对象提交到/testObject路径中: [{“test1”:“226.69”},{“test2”:“7.48”}] 在firebase中,响应存储为: [ { “testObject”:{ 0: { “测试1”:“22
- 我试图将一个json.dumps(mergedFile)作为一个有效负载放入(或修补)firebase,而firebase不会在每个对象前面自动创建索引(0、1等)
- 我正在将以下json对象提交到/testObject路径中: [{“test1”:“226.69”},{“test2”:“7.48”}]
- 在firebase中,响应存储为: [ { “testObject”:{ 0: { “测试1”:“226.69” }, 1: { “测试2”:“7.48” } } } ]
- 我需要存储的数据有效负载中的项目总数为 刚刚超过5000
- 如果我通过for循环解析每个对象,那么数据将被写入 但是,预期它会为每一次it迁移启动一个新的请求 与仅 在一个请求中转储一个大对象
import json
import requests
import xml.etree.ElementTree as ET
def get_data():
try:
print 'hampsters are running...'
# OFFLINE TESTING
sourceFile = 'response.xml'
tree = ET.parse(sourceFile)
root = tree.getroot()
for symbol in root.iter('symbol'):
company = symbol.attrib['company']
location = symbol.attrib['location']
destinationData = {company: location}
mergedFile.append(destinationData)
print('downlaoding the info was a success! :)')
except:
print 'Attempt to download information did not complete successfully :('
def patch_data():
try:
print 'attempting to upload info to database...'
data = json.dumps(mergedFile)
print data
try:
req = requests.put(url, data=data, headers=headers)
req.raise_for_status()
except requests.exceptions.HTTPError as e:
print e
print req.json()
print 'upload to database complete!'
except:
print 'Attempt to upload information did not complete successfully :('
if __name__ == "__main__":
mergedFile = []
auth = "*****"
databaseURL = 'https://*****.firebaseio.com'
headers = {"auth": auth, "print": "pretty"}
# headers = {"auth": auth, "print": "pretty", "Accept": "text/event-stream"}
requestPath = '/testObject.json?auth=' + auth
url = databaseURL + requestPath
get_data()
patch_data()
我觉得它是在存储一个数组,但我在put请求之前利用data=json.dumps(mergedFile)。我是否对json.dumps的工作原理有误解?根据请求之前的输出,我觉得它看起来不错。我还利用了请求python模块。。。这是将数据转换为数组吗
任何人如能提供任何见解,将不胜感激
问候,
James.Firebase数据库将数组存储为常规的键值对,键值为数字。所以你看到的是预期的行为 Firebase不建议在数据库中存储阵列的原因有很多。在这些链接中可以找到一些: