首页 > 编程语言 >Python读Excel数据,创建Word文档上下文字典列表,元素为字典

Python读Excel数据,创建Word文档上下文字典列表,元素为字典

时间:2024-07-15 18:07:38浏览次数:12  
标签:Word Python list 列表 df context 上下文 字典

# 读Excel数据,创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
def create_docx_context_dict_list(_excel_path):
    """
    输入参数:
    :param _excel_path:Excel全路径
    功能:创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
         字典的键为Excel之sheet表头信息
    """
    warnings.simplefilter(action='ignore', category=UserWarning)  # 忽略DataValidationError的警告
    if not _excel_path.exists():
        print(f'{Fore.RED}文件不存在噢!!!\n{_excel_path}{Style.RESET_ALL}')
    try:
        _cols = 16  # 10个单元格、3个复选框、3张图片
        str_dict = {i: str for i in range(_cols)}
        df = pd.read_excel(_excel_path, sheet_name=0, header=None, skiprows=1, converters=str_dict)
        pd.set_option('future.no_silent_downcasting', True)  # 不提示函数在未来版本中将被替代的警告
        df = df.replace(r'\s+', '', regex=True)  # 删除所有字符串列的空格
        df = df.iloc[:, 1:_cols]  # 取15列:B:P,跳过序号列
        df = df.dropna(subset=[1])  # 删除第1列(姓名)中具有空值的行
        df_list = df.values.tolist()[1:]  # 数据帧转列表,每行对应一个列表(包括表头)
        _head_list = df.values.tolist()[0]  # 获取跳过序号的表头信息
        assert len(_head_list) == len(df_list[0])  # 断言表头列数等于值列数
        _context_list = []  # 上下文列表,包含全部培训人员的上下文字典
        for row in range(len(df_list)):  # 每行一个培训人员信息
            _context_dict = {}  # 上下文字典,每个培训人员对应一个字典
            for i, col_value in enumerate(df_list[row]):  # 按列遍历
                col_label = _head_list[i]  # 取每列表头信息
                _context_dict[col_label] = col_value  # 将字典键(列表头)值(培训人员列信息)关联
            _context_list.append(_context_dict)  # 将每个培训人员字典加入列表
        # pprint(_context_list)
        return _context_list  # 返回全部培训人员列表
    except ValueError:
        fun_name = inspect.currentframe().f_code.co_name  # 提取函数名称
        print(f'{Fore.RED}函数"{fun_name}"异常退出!!!{Style.RESET_ALL}')
        return []

 

标签:Word,Python,list,列表,df,context,上下文,字典
From: https://www.cnblogs.com/zdt168/p/18303699

相关文章

  • Python循环控制
    技术背景循环控制是每一门编程语言的基础,最常用的就是for循环和while循环。使用循环可以很大程度上简化代码的编写,可读性也很强。这里介绍Python的for循环基本操作和多重循环的控制。单层for循环这里用一个最简单的打印数字的for循环来演示普通单层for循环的控制:foriin(1,......
  • JAVA编辑word替换指定内容,解决插入图片显示不全问题
    在开发过程中,我们可能会遇到需要生成word,或者通过模板word替换相应内容的需求。但在文档中插入图片时,如果段落格式设置不对,就会导致图片只显示一点点或者不显示。接下来就介绍一下java编辑word和插入图片需怎么处理。1.引入依赖首先我们在项目中引入ApachePOI,用于读取和操作wor......
  • 005_python3 元组 字典 集合 条件控制 循环语句 编程第一步
    Python3元组1.元组的元素不能修改,使用小括号,逗号隔开,也可不用小括号,不同类型元素tup1=()  #创建空元组tup2=('he',)   #元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用tup3=('abc','xyz',2,4,9)2.元组使用访问元组:tup3......
  • 如何将JPG图片转换成可编辑的word文档?
    在日常办公和学习中,我们时常需要将图片中的文字信息转换为Word文档,以便于编辑、整理和分享。虽然这一过程看似复杂,但实际上有多种方法可以实现。那么图片怎么转换成word文档呢?本文将为您介绍三种常用的方法,帮助您轻松将图片转换为Word文档。方法一:手动输入对于文字量较小或者对......
  • python-查找算法
    查找算法1.线性查找2.二分查找3.插值查找4.斐波那契查找1.线性查找"""线性查找:对于被查找的序列没有顺序要求,可以是有序的,也可以是无序的,查找时从线性表的起始位置按照顺序匹配,找到元素时,返回该元素在原始字符串的下标若匹配完整个序列......
  • 字典映射简单方法
      通过反射简单设置字典,不用每个需要用字典的地方都重新写一遍 /***@paramdictType字典type*@paramdictField字典type对应字段名*@paramdictFieldName需要填充中文的字段名*@param<T>*/<T>voidsetDictName(Tobj,StringdictType,StringdictField,S......
  • python 基础中requests 验证码
    验证码登录importrequests#古诗文网登录页面的URL地址url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTM......
  • Python 数据可视化与报告生成
    Python数据可视化与报告生成在当今的数据驱动世界中,数据可视化和报告生成是数据科学家、分析师和业务决策者不可或缺的工具。Python,作为一种强大且灵活的编程语言,通过其丰富的库和框架,为数据可视化和报告生成提供了广泛的支持。本文将深入探讨Python在数据可视化和报告生......
  • Python Web应用的部署与维护
    PythonWeb应用的部署与维护是一个涉及多个环节和技术的复杂过程,涵盖了从项目准备、服务器配置、代码部署到后期监控与维护的全方位工作。以下是对这一过程的详细阐述。一、Web应用的部署1.项目准备在部署之前,首先需要确保PythonWeb项目已经开发完成,并且经过了充分的测......
  • python 20行代码 无图 turtle 缺心眼(缺良心)还没治好 模拟太阳系天体运行系统
    短短12h赞就破10个了,没20个很好了,我可不想失去头发其实我不想做这个程序的但是今天是我参加完天文比赛的10分之57周年(我2024.5.12参加的)20行以下代码段为准本期新规矩:天王18步老规矩.先放代码importturtle,time;screen=turtle.Screen();screen.bgcolor('black');scr......