将 xs:duration 数据类型解析为 Python datetime.timedelta 对象?

2023-12-31

根据标题,我正在尝试解析一个包含以下内容的 XML 文件:xs:duration http://www.w3schools.com/Schema/schema_dtypes_date.asp#duration数据类型。我想把它转换成Pythontimedelta http://docs.python.org/library/datetime.html#timedelta-objects对象,然后我可以在进一步的计算中使用它。

是否有任何内置的方法可以做到这一点,类似于strptime() http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior功能?如果没有,实现这一目标的最佳方法是什么?


鉴于我已经有一个关于我在问题中提出的问题的工作示例,为了完整起见,我将其发布在这里。如果有更好的答案出现,我会接受。

period = '-P14D'
regex  = re.compile('(?P<sign>-?)P(?:(?P<years>\d+)Y)?(?:(?P<months>\d+)M)?(?:(?P<days>\d+)D)?(?:T(?:(?P<hours>\d+)H)?(?:(?P<minutes>\d+)M)?(?:(?P<seconds>\d+)S)?)?')

# Fetch the match groups with default value of 0 (not None)
duration = regex.match(period).groupdict(0)

# Create the timedelta object from extracted groups
delta = timedelta(days=int(duration['days']) + (int(duration['months']) * 30) + (int(duration['years']) * 365),
                  hours=int(duration['hours']),
                  minutes=int(duration['minutes']),
                  seconds=int(duration['seconds']))

if duration['sign'] == "-":
    delta *= -1

这可行,但无法正确处理月份长度或闰年。就我而言,这不是问题,但值得记住。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 xs:duration 数据类型解析为 Python datetime.timedelta 对象? 的相关文章

  • 为什么我不能导入 geopandas?

    我唯一的代码行是 import geopandas 它给了我错误 OSError Could not find libspatialindex c library file 以前有人遇到过这个吗 我的脚本运行得很好 直到出现此错误 请注意
  • 使用 Django 的 post_save() 信号

    我有两张桌子 class Advertisement models Model created at models DateTimeField auto now add True author email models EmailField
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • urllib2.urlopen() 是否实际获取页面?

    当我使用 urllib2 urlopen 时 我在考虑它只是为了读取标题还是实际上带回整个网页 IE 是否真的通过 urlopen 调用或 read 调用获取 HTML 页面 handle urllib2 urlopen url html
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • asyncio - 多次等待协程(周期性任务)

    我正在尝试为异步事件循环创建定期任务 如下所示 但是我收到 RuntimeError 无法重用已等待的协程 异常 显然 asyncio 不允许等待相同的可等待函数 如中讨论的这个错误线程 https bugs python org issu
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is

随机推荐

  • Swift:从 url 检索音频文件标记列表?

    我只想获取音频文件中的标记列表 我认为这将是一项简单的常见任务 不会太困难 但是 我几乎找不到任何示例代码或文档 所以我最终得到了以下结果 private func getMarkers url CFURL gt AudioFileMark
  • 打印所有已加载的 Spring bean - Spring Boot

    我怎样才能知道作为我的 Spring Boot 应用程序的一部分加载的所有 Bean 的名称 我希望在 main 方法中有一些代码来打印服务器启动后加载的 bean 的详细信息 如spring boot的入门指南所示 https sprin
  • 是否可以使用 peewee python ORM 对多个字段进行 sql 连接?

    假设我们有这三个模型 class Item BaseModel title CharField class User BaseModel name CharField class UserAnswer BaseModel user Fore
  • Redis 上限排序集、列表或队列?

    有人在 Redis 中实现过任何类型的上限数据结构吗 我正在致力于构建类似新闻源的东西 提要最终会被频繁地操作和读取 将其保存在 Redis 中的排序集中对于我的用例来说是便宜且完美的 唯一的问题是我每个 feed 只需要 n 个项目 而且
  • 为 WCF 设置 Ninject [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁有关于如何在 WCF 中设置 Ninject 的明确说明吗 一直在谷歌搜索 但我看不到任何关于如何在 WCF 中使用 Ninject
  • 无法获取特定捐赠者的 searchBook 方法

    该程序的目标是输入书的标题 捐赠者 章节数和位置 从那里 用户输入以下提示 搜索输入捐赠者姓名 我能够将所有这些信息作为输出 然而 我似乎无法弄清楚如何将结果范围缩小到只有一位捐赠者 相反 我的程序打印出条目中列出的所有捐赠者 我在下面列出
  • 在 Android Studio 中更新到 Gradle 3.3.2 时出错:无法解析符号 R

    如果我通过更改来更新 Gradle dependencies classpath com android tools build gradle 3 x x 从版本3 2 1到版本3 3 2我得到了Cannot resolve symbol
  • 加快 django 中的首页加载速度

    当我更新网站上的代码时 我 自然 会重新启动我的 apache 实例 以便更改生效 不幸的是 每个 apache 实例提供的第一个页面在第一次将所有内容加载到 RAM 中时非常慢 对于这个特定站点需要 5 7 秒 后续请求只需要 0 5 1
  • Rspec查看未定义方法stub_model

    我试图找出这段代码有什么问题 即它找不到方法 stub model 试图寻找解决方案 但我到处看看我的文件似乎都很好 请看一下 也许我只是看不到一个简单的错误 多谢 书籍模型是在数据库中创建的 我的视图规范 spec view books
  • NUnit 下 System.Uri 解析无效

    在 ReSharper 下转载 来自 GUI Runner 来自 NUnit Console 测试于 Win 7 Pro 所有更新 Ru ru 语言环境 复制 Windows Server 2012 所有更新 En us 区域设置 复制 尝
  • 在 phpMyAdmin 中创建函数 - 错误:访问被拒绝,您需要超级权限才能执行此操作

    我导入了MySQL数据库 所有表均已成功导入 但函数未成功导入 我执行 SQL 查询的唯一方法是通过 phpMyAdmin 或使用 PHP 脚本 无 SSH 以下是要导入的函数的示例 DELIMITER 50003 DROP FUNCTIO
  • Javascript/jQuery:文件下载就绪事件

    有什么方法可以知道有关文件准备下载的浏览器事件已触发 我有一个生成文件的脚本 当发生这种情况时 我会显示一个 laoding gif 一旦出现此消息 https i stack imgur com CmZHE png https i sta
  • 如何限制安装包的安装数量

    我正在开发一个 C Win Forms 应用程序 需要安装在客户端计算机 Windows XP Windows 7 上 我遇到的问题是 我需要限制安装数量每个安装包到 2 或某个数字 有没有办法通过Install Shield或任何其他方式
  • Parse_date(带有西里尔字母符号的语言:uk、ru、bg、by...)通过使用 hms (tidyverse)

    我正在尝试解析 R 库 hms 中的日期 英语 德语 法语等都解析得很好 F e parse date 1 Januar 2015 d B Y locale locale de 1 2015 01 01 但是 如果我尝试解析由带有西里尔字母
  • 是否有解决方法可以使 DateAxis 从一周的第一天开始绘制刻度?

    当我创建一个需要周周期轴的图表时 我遇到了这个问题 当我设置刻度单位时DateAxis with new DateTickUnit DateTickUnitType Day 7 每 7 天显示一次刻度线 但是 刻度线的日期并非从一周的第一天
  • Django 简单验证码“没有名为字段的模块”错误

    您好 我正在尝试将 Django 简单验证码实现到我的应用程序中 但是当我尝试从 view py from captcha fields import CaptchaField 导入时 出现错误 No module named fields
  • 带有显示 Flex 的容器内的
    已损坏

    这种行为有点奇怪 如果有一个容器及其display属性设置为flex and flex direction to column 方向 hr 其内部的元素将发生变化并变得垂直 并且其高度将减小以适应线条的高度 html body height
  • XML 到 SOAP 的转换

    我是 XML XSLT 和 SOAP 新手 我想知道是否可以转换此 XML 文件
  • SQL Server 的理想索引策略是什么?

    我和一个朋友正在开发一个使用 SQL Server 的新项目 在我过去完成的项目中 我总是在 JOIN 或 WHERE 中使用的任何字段上放置索引 我的朋友仅在需要性能时才添加它们 这个想法是维护索引是有成本的 并且您希望确保支付该成本是值
  • 将 xs:duration 数据类型解析为 Python datetime.timedelta 对象?

    根据标题 我正在尝试解析一个包含以下内容的 XML 文件 xs duration http www w3schools com Schema schema dtypes date asp duration数据类型 我想把它转换成Python