首页 > 解决方案 > 从 Cloud Firestore 查询数据 - Python

问题描述

我有一个查询,用于从 cloud firestore 获取数据。但它引发了一个关键错误。不知道出了什么问题。下面的代码。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import pandas as pd
import sys
import os
import fileinput

# Use the application default credentials
cred = credentials.Certificate('creddatabase.json')
firebase_admin.initialize_app(cred)

db = firestore.client()
docs = db.collection(u'testcollection').stream()
users_ref = db.collection(u'testcollection')
docs = users_ref.stream()
array = []
is_header_printed = False

rows_keys = None
out_file = open("testcollection.csv","w")
for doc in docs:
    print(doc.id)
    row_items = doc.to_dict()
    print(doc)
    if(is_header_printed == False):
        rows_keys = list(row_items.keys())
        rows_keys.sort(reverse=False)
        #loop through every key and print the header row
        for key in rows_keys:
            print(key)
            out_file.write(str(key.replace(",","_"))+",")
        out_file.write("\n")
        is_header_printed = True
    for key in rows_keys:
        print(key)
        out_file.write(str(row_items[key]).replace(',',' ')+',')
        out_file.write("\n")

    print(str(doc.to_dict()['StartDate'].year) + '/' + str(doc.to_dict()['StartDate'].month) + '/' + str(doc.to_dict()['StartDate'].day))
out_file.close()

我收藏的文档如下所示:

Comments: ""
Objectived: "test" 
Media: "test media"
notes: "test notest"
Zone A: 0
Zone B: 0

错误信息:

Traceback (most recent call last):
  File "/Users/DataScience/Firebasequery/Firebase_query_for_psolzsol_jnhibtionsingalling.py", line 49, in <module>
    out_file.write(str(row_items[key]).replace(',',' ')+',')
KeyError: 'Media'

标签: pythongoogle-cloud-firestorefirebase-adminkeyerror

解决方案


推荐阅读