Python操作Firestore更新数组报错:'list'对象无'items'属性如何解决?
问题解决方法
报错原因
Firestore的update()方法要求传入字典类型的参数,字典的键为需要更新的字段路径,值为对应字段的新内容。你直接传入列表类型的results,方法内部尝试调用参数的items()方法遍历键值对时就会触发AttributeError。
解决方案
根据你的使用场景选择对应写法:
1. 直接覆盖原有数组内容
如果需要清空List_of_all_links原有的内容,直接存入link1、link2,使用以下代码:
results = ['link1','link2'] db.collection(u'myjob').document(u'01').update({ u'links.List_of_all_links': results })
嵌套字段使用.分隔路径即可定位到map下的array字段,不需要写嵌套字典结构
2. 向数组追加新元素(保留原有内容)
如果不需要覆盖数组中已有的历史链接,只需追加新的内容,使用Firestore提供的ArrayUnion方法:
from google.cloud import firestore results = ['link1','link2'] db.collection(u'myjob').document(u'01').update({ u'links.List_of_all_links': firestore.ArrayUnion(results) })
内容的提问来源于stack exchange,提问作者jpy
相关产品推荐
相关产品推荐

