如何将Python嵌套列表转换为指定格式后存入Firestore已存在的map中
实现步骤
1. 转换嵌套列表为目标字典
首先将你给出的嵌套列表处理成键为整数、值为对应字母的字典,代码示例:
raw_list = [['1', 'B'], ['5', 'E'], ['7', 'J']] # 转换为符合要求的字典:键转整数类型,值保留原字母 letter_map = {int(k): v for k, v in raw_list}
处理后letter_map的结构为{1: 'B', 5: 'E', 7: 'J'},完全匹配你需要的map结构。
2. 更新Firestore文档的letter_count字段
你需要先安装好firebase-admin依赖,初始化Firebase应用后操作目标文档,代码示例:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # 初始化Firebase应用,已初始化过可跳过这段 # 替换serviceAccountKey.json为你自己的服务账号密钥文件路径 if not firebase_admin._apps: cred = credentials.Certificate("serviceAccountKey.json") firebase_admin.initialize_app(cred) db = firestore.client() # 替换为你自己的集合名、目标文档ID doc_ref = db.collection("你的集合名").document("你的文档ID") # 直接覆盖更新整个letter_count字段 doc_ref.update({ "letter_count": letter_map })
注意事项
- 如果
letter_count字段之前已经有其他键值对,上述update方法会直接覆盖整个letter_count字段;如果你需要保留原有键值对,仅新增/更新本次的1、5、7对应键值,修改更新代码为:update_data = {f"letter_count.{k}": v for k, v in letter_map.items()} doc_ref.update(update_data) - 如果你是给新文档设置该字段,把
update方法换成set方法即可,配合merge=True参数可以保留文档原有其他字段:doc_ref.set({ "letter_count": letter_map }, merge=True)
内容的提问来源于stack exchange,提问作者jpy
相关产品推荐
相关产品推荐

