You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从Firestore数组中获取指定字段值(如numeroPoliza)

Python 从 Firestore 数组中提取指定字段值

先明确数据结构(模拟你图示的结构)

假设你的Firestore文档结构如下:

集合(如seguros)
└─ 目标文档
   ├─ 其他字段...
   └─ polizas: [
        {"numeroPoliza": "P001", "其他字段": "xxx"},
        {"numeroPoliza": "P002", "其他字段": "xxx"},
        ...
      ]

实现步骤与代码

1. 初始化Firestore客户端

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

# 用你的服务账号密钥初始化
cred = credentials.Certificate("你的密钥文件路径.json")
firebase_admin.initialize_app(cred)

db = firestore.client()

2. 从单个文档提取指定字段值

# 定位到目标文档
doc_ref = db.collection("seguros").document("你的文档ID")
doc = doc_ref.get()

if doc.exists:
    doc_data = doc.to_dict()
    # 获取数组字段,默认空数组避免报错
    polizas_list = doc_data.get("polizas", [])
    # 遍历数组提取numeroPoliza
    target_values = [item["numeroPoliza"] for item in polizas_list if "numeroPoliza" in item]
    print(target_values)  # 输出所有匹配的字段值
else:
    print("目标文档不存在")

3. 批量提取多个文档中的字段值

如果需要遍历整个集合的文档,批量提取:

all_target_values = []
# 遍历集合中所有文档
for doc in db.collection("seguros").stream():
    doc_data = doc.to_dict()
    polizas_list = doc_data.get("polizas", [])
    # 提取当前文档的目标字段并合并到总列表
    doc_values = [item["numeroPoliza"] for item in polizas_list if "numeroPoliza" in item]
    all_target_values.extend(doc_values)

print(all_target_values)  # 输出所有文档中的目标字段值

注意事项

  • 替换代码中的seguros(集合名)、polizas(数组字段名)、你的文档ID、你的密钥文件路径.json为实际值
  • 加入if "numeroPoliza" in item判断,避免数组元素缺失字段时抛出KeyError
  • 确保你的服务账号拥有Firestore的读取权限

内容的提问来源于stack exchange,提问作者Cristian Sazo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:45:49