读取SharePoint Online列表时空格表头字段报KeyError如何解决
解决方法
1. 查看字段实际存储的命名格式
不需要直接打印l_items,遍历列表项时打印单个项的所有属性键即可看到所有字段的内部命名:
for item in l_items: # 打印当前项所有属性的键,即可找到带空格/特殊字符表头对应的实际键名 print(dict(item.properties).keys())
SharePoint的列表字段有两套名称:显示名(即页面上看到的带空格的表头)和静态内部名,创建字段时如果名称带空格,内部名会自动把空格编码为_x0020_,比如Project ID的内部名通常为Project_x0020_ID,这就是你之前直接把空格替换为下划线无法匹配的原因。
2. 读取带空格/特殊字符的字段值
找到对应的内部名之后直接取值即可,示例:
for item in l_items: print(item.properties['Title'], item.properties['Project_x0020_ID'], item.properties['Process_x0020_Owner'])
如果不想手动查找内部名,也可以先拉取列表的字段元数据,自动映射显示名和内部名:
# 先获取列表所有字段的显示名和内部名映射 fields = s_list.fields ctx.load(fields) ctx.execute_query() field_map = {field.title: field.internal_name for field in fields} # 之后就可以直接用显示名取值 for item in l_items: print(item.properties[field_map['Project ID']], item.properties[field_map['Process Owner']])
内容的提问来源于stack exchange,提问作者Akshi
相关产品推荐
相关产品推荐

