首页 > 解决方案 > 试图将 python firebase 信息转换为 json

问题描述

我有一个 Python 代码,我可以使用以下代码从 firebase cloud firestore 获取数据:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate("firebaseCredentials.json")
firebase_admin.initialize_app(cred)

db = firestore.client()

#read data
#Getting a Document with a known ID

results = db.collection('users').document('HtregtuuDDVWglz9DjobFGH9jMo1').collection('chats').get()
for result in results:
    print(result.to_dict())

使用此代码,结果是这样的:

{'message': 'works'}
{'message': 'this is a test'}

我还有一个带有一些随机字符串的 json 文件,如您在此处看到的:

  "intents": [
    {
      "tag": "greeting",
      "patterns": [
        "Hi",
      ],
      "responses": [
        "Hey :-)",
      ]
    }
}

好的,这是我的伙计,有什么方法可以获取我从 firebase 获得的数据(例如:'这是一个测试'),将该信息转换为 json 并将其放入 jsonfile(或同一个文件)中那:

  "intents": [
    {
      "tag": "firebase data1",
      "patterns": [
        HERE THE FIREBASE DATA (ex: this is a test)
      ],
      "responses": [
        HERE THE FIREBASE DATA (ex: this is a test)
      ]
    },

    {
      "tag": "firebase data22",
      "patterns": [
        HERE THE FIREBASE DATA2 (ex: works)
      ],
      "responses": [
        HERE THE FIREBASE DATA2 (ex: works)
      ]
    }
}
}

标签: pythonjsonfirebase

解决方案


要在“意图”结构中重新格式化您的 Firebase 数据,您可以:

intents = {"intents": []}
results = db.collection('users').document('HtregtuuDDVWglz9DjobFGH9jMo1').collection('chats').get()
for index, result in enumerate(results):
    data = result.to_dict()
    intents["intents"].append({
        "tag": f"firebase data{index}",
        "patterns": [data["message"]],
        "responses": [data["message"]]
    })

print(intents)

推荐阅读