遍历SharePoint返回的多个字典并将数据转换保存为DataFrame
首先sp.get_items()返回的结果本身就是符合pandas输入要求的行字典列表,你可以直接生成DataFrame,也可以先过滤冗余元数据后生成更干净的业务数据表。
完整实现代码
import pandas as pd def demo_list(): print("**************\nList ...\n") items_dict = sp.get_items() # ===== 方案1:直接生成全字段DataFrame(保留所有系统元数据+业务字段) # df = pd.DataFrame(items_dict) # 可打印列名查看所有字段,按需筛选 # print(df.columns.tolist()) # ===== 方案2:清洗后生成仅含业务字段的DataFrame(更推荐) # 1. 定义你需要保留的业务字段,可根据实际需求调整 need_cols = [ 'Id', 'Title', 'Modified', 'Created', 'Owner_x0020_Name', 'Application', 'Attribute', 'Total_x0020_User_x0020_Count' ] processed_rows = [] for item in items_dict: # 2. 仅提取需要的字段,自动补全缺失字段为None row = {col: item.get(col) for col in need_cols} # 3. 替换SharePoint字段编码_x0020_(原义是空格)为下划线,提升可读性 row = {k.replace('_x0020_', '_'): v for k, v in row.items()} processed_rows.append(row) # 4. 生成DataFrame df = pd.DataFrame(processed_rows) # 5. 可选:调整数值字段类型 df['Total_User_Count'] = pd.to_numeric(df['Total_User_Count'], errors='coerce') return df
说明要点
- 原始返回数据中带
__metadata、__deferred的字段都是SharePoint系统元数据,无业务需求可直接过滤 - 字段名中的
_x0020_是SharePoint对空格的编码,替换后更便于后续数据处理 - 数值类字段默认可能返回字符串格式,可通过
pd.to_numeric转换为数值类型,方便后续统计计算
内容的提问来源于stack exchange,提问作者aditya
相关产品推荐
相关产品推荐

