python - 试图将 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)
]
}
}
}
解决方案
要在“意图”结构中重新格式化您的 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)
推荐阅读
- c++ - C++中迭代器值的垃圾值
- rest - 为什么以及何时应该使用身份提供程序,例如 Auth0 或 Azure AD B2C,而不是仅将用户凭据存储在我的数据库中?
- flutter - flutter_local_notifications 有 onShown 监听器吗?
- sockets - UDP 与 TCP 套接字要求
- spring-mvc - java.lang.ClassCastException:[Ljava.lang.Object;不能施放
- node.js - 一个把手#each 不适用于 Heroku
- java - 使用特定的 ClassLoader 获取 CtClass
- python - 有没有办法通过比较符号来解决 SymPy 中的两个矩阵?
- python - 在python中从当前时间生成1分钟的时间间隔
- javascript - 多个modals只能关闭1个