python实现xml2dict2doc:学习过程中的代码片段,具有参考意义

该代码演示了如何使用Python读取XML文件,将其转换为字典,然后根据DOC模板格式填充数据,包括日期格式化和年龄计算。它使用了xmltodict库解析XML,DocxTemplate库处理DOC模板。
摘要由CSDN通过智能技术生成

该代码实现将XML文件读入并转换为字典格式dict,并将数据按照DOC模板格式输出。

代码如下:

from docxtpl import DocxTemplate, RichText
import xmltodict
import datetime


# 格式化日期格式并计算出年龄,返回字典
def gsh_sj(name,key):
    name = name
    key = key
    name1 = name.get(key)[:4]+"."+name.get(key)[4:]
    name[key] = name1
    return name

# 计算字符串时间年龄
def js_age(name):
    now = datetime.datetime.now()
    year = int(str(now.year))
    month = int(str(now.month))
    # print(year,month)
    if month >= int(name[4:]):
        age = year - int(name[:4]) + 1
    else:
        age = year - int(name[:4])
    return age

# 将指定的xml文件读入并使用xmltodict转化为字典格式
with open('./biao/段***.lrmx', 'r', encoding = 'UTF-8') as fd:
    doc = xmltodict.parse(fd.read())
# 初始化模板对象
tpl = DocxTemplate("./表A4.docx")
# 待填充的字典数据
context = doc.get('Person')

# 加入年龄字典
age = js_age(context.get('ChuShengNianYue'))    #计算年龄
context.update({"age": age})                    #把年龄加入到字典中
# 规范时间、年龄等数据
context = gsh_sj(context,'ChuShengNianYue')
context = gsh_sj(context,'RuDangShiJian')
context = gsh_sj(context,'CanJiaGongZuoShiJian')



# 进行模板替换
tpl.render(context=context)
# 输出文件到指定文件
tpl.save("示例结果文档.docx")

# print(context.get('ZhaoPian'))

表A4大概如下图:

示例结果文档.docx如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自学开源爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值