【发布时间】:2022-01-03 22:20:09
【问题描述】:
假设我在 Firestore 集合中存储了下表:
AAA BBB CCC
6 1 15
3 19 83
100 4 2
我想阅读整个集合并将其转换为 Python 中的 Pandas 数据框。我用下面的代码试了一下:
cred = credentials.Certificate(serviceAccountKeyJson)
firebase_admin.initialize_app(cred, databaseURL)
db = firestore.client()
col_ref = db.collection(collection_name)
docs = col_ref.stream()
rows_list = []
for doc in docs:
column_name_list = list(doc.to_dict().keys())
values_list = list(doc.to_dict().values())
rows_list.append(values_list)
col_data_df = pd.DataFrame(rows_list, columns=column_name_list)
它可以工作,但是当我将col_data_df 保存到 csv 文件中时,内容似乎如下:
AAA BBB CCC
15 1 6
3 83 19
100 4 2
我知道集合中的每个文档在每个文档中都有相同的字段(我的意思是“字段名称”)。但是我有一个挑战,我事先不知道这些字段的名称!
我选择了在for 循环中将字段名称分配给column_name_list 的丑陋方式。
但在 for 循环的每一步中,字段的顺序似乎都不同。
例如,第一行应该是“6 1 15”,但我在 csv 文件中看到“15 1 6”。
如何在事先不知道文档字段名称的情况下读取集合数据并将其保存在 Pandas 数据框中(使用 Python)?
【问题讨论】:
标签: python pandas firebase dataframe google-cloud-firestore