попытка преобразовать информацию python firebase в json

# #python #json #firebase

Вопрос:

У меня есть код на 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 и поместить ее в файл json (или в тот же файл ) вот так:

   "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)
      ]
    }
}
}
 

Комментарии:

1. работает ли firebase data1 конкретно в паре с this is a test ? Т. Е. Важен ли порядок ответа firebase при установке тега?

2. Нет, это не важно, я имею в виду, что как только я получу данные из firebase, я просто хочу поместить данные (без какого-либо важного порядка) в файл json

Ответ №1:

Чтобы переформатировать данные 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)