自定义dateutil.parser世纪推理逻辑

2024-02-20

我正在处理具有两位数年份的旧文本文件,其中默认世纪逻辑dateutil.parser似乎效果不太好。例如,珍珠港袭击事件并未发生dparser.parse("12/7/41")(返回 2041-12-7)。

回滚到 1900 年代的内置世纪“阈值”似乎发生在 66 岁:

import dateutil.parser as dparser
print(dparser.parse("12/31/65")) # goes forward to 2065-12-31 00:00:00
print(dparser.parse("1/1/66")) # goes back to 1966-01-01 00:00:00

出于我的目的,我想将此“阈值”设置为 17,以便:

  • "12/31/16"解析至 2016-12-31 (yyyy-mm-dd)
  • "1/1/17"解析为 1917-01-01

但我想继续使用这个模块,因为它的模糊匹配似乎运行良好。

The 文档 http://dateutil.readthedocs.io/en/stable/examples.html没有识别执行此操作的参数...是否有一个我忽略的参数?


这没有特别详细的记录,但您实际上可以使用以下命令覆盖它dateutil.parser。第二个参数是parserinfo对象,您将关心的方法是convertyear. The 默认实现 http://dateutil.readthedocs.io/en/stable/_modules/dateutil/parser.html#parserinfo.convertyear是什么给你带来了问题。您可以看到,它对世纪的解释是基于当前年份加上或减去五十年。这就是为什么你会在 1966 年看到转变。明年将是 1967 年。:)

由于您个人使用它并且可能有非常具体的需求,因此您不必非常通用。如果它适合您,您可以做这样简单的事情:

from dateutil.parser import parse, parserinfo

class MyParserInfo(parserinfo):
    def convertyear(self, year, *args, **kwargs):
        if year < 100:
            year += 1900
        return year

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

自定义dateutil.parser世纪推理逻辑 的相关文章

  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • 将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

    我正在使用 WSL2 Ubuntu 我一直在学习使用 Fastapi 进行后端 API 开发的课程 我相信我的 Ubuntu 默认 python 是 3 8 我正在尝试使用 python 3 10 0 进行开发 我做了以下事情 pyenv安
  • matplotlib:调整图形窗口大小而不缩放图形内容

    当您调整图形大小时 Matplotlib 会自动缩放图形窗口中的所有内容 通常这是用户想要的 但我经常想增加窗口的大小 为其他东西腾出更多空间 在这种情况下 我希望在更改窗口大小时预先存在的内容保持相同的大小 有谁知道一个干净的方法来做到这
  • Pygame 让精灵按照给定的旋转行走

    很久以前我做了一个Scratch脚本 我想用Pygame将其转换为Python 有很多示例显示图像的旋转 但我想知道如何更改精灵的旋转以使其沿给定方向移动 而不更改图像 这是我的暂存代码 这是我的 Pygame 精灵类 class Star
  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • 从 Python 将分层 JSON 数据写入 Excel xls?

    我想将一些数据从 python 写入 xlsx 我目前将其存储为 JSON 但它从 Python 中输出什么并不重要 单个文章的 JSON 如下所示 Word Count 50 Key Words Blah blah blah Foo Fr
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • Python ElementTree 获取带有命名空间的属性

    我试图访问 XML 中的 def 所以在这个例子中我会得到Evolus Common PlainTextV2作为输出 我似乎无法弄清楚如何获取具有名称空间的属性 如果我想得到id它工作得很好 Python for content ns in
  • Python 在 64 位 vista 上获取 os.environ["ProgramFiles"] 的错误值

    Vista64 计算机上的 Python 2 4 3 环境中有以下2个变量 ProgramFiles C Program Files ProgramFiles x86 C Program Files x86 但是当我运行以下命令时 impo
  • 如何不断地将 STDOUT 发送到我的 python TCP 服务器?

    我有简单的 python echo 服务器 它使用套接字 并向客户端回显随机数 我有另一个程序 每 2 秒将值打印到标准输出 如果它只是一个脚本 我可以像这样重定向 stdout python script py 并像这样在脚本中获取它da
  • 如何使用 numpy 从一维数组创建对角矩阵?

    我正在使用 Python 和 numpy 来做线性代数 我表演了numpy对矩阵进行 SVD 以获得矩阵 U i 和 V 然而 i 矩阵表示为 1 行的 1x4 矩阵 IE 12 22151125 4 92815942 2 06380839
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • 如何在自定义 django 命令中抽象出命令代码

    我正在我的应用程序下编写自定义 django 命令management commands目录 目前我在该目录中有 6 个不同的文件 每个文件都有不同的命令来解决独特的需求 然而 有一些实用程序是它们所共有的 抽象出这些公共代码的最佳方法是什
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • Pandas 中的数据透视表小计

    我有以下数据 Employee Account Currency Amount Location Test 2 Basic USD 3000 Airport Test 2 Net USD 2000 Airport Test 1 Basic
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu

随机推荐

  • Jupyter Notebooks 中的 Python 版本和环境的 VSCode 问题

    Issue 我遇到的问题是 Python 的环境和版本与 VSCode 中的设置不匹配 并导致我尝试在 Jupyter 笔记本中使用的包出现问题 我使用的是安装了 Python 3 9 1 包括旧版本 和 Visual Studio Cod
  • IActionFilter 和 IAuthorizationFilter 之间的区别

    我只是想知道两者之间是否有什么区别IActionFilter and IAuthorizationFilter 我假设我们可以在下面实现相同的逻辑IActionFilter可能有IAuthorizationFilter 真的吗 Thanks
  • 从 C++ 中的 std::string 中删除空格

    在 C 中从字符串中删除空格的首选方法是什么 我可以循环遍历所有字符并构建一个新字符串 但有更好的方法吗 最好的办法就是使用算法remove if http en cppreference com w cpp algorithm remov
  • jQuery UI:日期选择器将年份范围下拉设置为 100 年

    使用日期选择器时 年份下拉菜单默认仅显示 10 年 用户必须单击去年才能添加更多年份 我们如何将初始范围设置为 100 年 以便用户默认看到一个大列表 function InitDatePickers datepicker datepick
  • GZipStream 进行 gzip 压缩,但解压缩文件最终会出现“数据意外结束”

    有谁知道为什么我在解压缩 gzip 文件时收到 数据意外结束 错误消息 为了验证字节数据没有损坏 我使用FooTest4 csv写入文件并能够成功打开该文件 两者都是 FooTest3 csv gz and FooTest2 csv gz解
  • 如何忽略 PHP 中未定义的变量错误[重复]

    这个问题在这里已经有答案了 我最近设置了一个新的网络服务器 但遇到了未定义的变量错误 如果我在没有初始化的情况下使用变量 则会出现错误 源代码没有改变 只有 LAMP 环境可以 你会如何解决这个问题 Thanks Well 您应该定义所有变
  • SVG viewBox 反转 Y 坐标

    我正在使用 SVG 在 HTML 页面中绘制不同的形状 这些不同的形状是从 Microsoft Sql Server 中的空间数据库的几何对象中检索的 我面临的问题是坐标系统 Svg 和 Microsoft Sql Server 不同 0
  • 调整highlight.sector() 宽度和位置 - R 中的和弦图(circlize 包)

    我需要一些帮助来调整突出显示的部分chordDiagram 来自 circlize 包 我正在处理渔业上岸数据 渔船从一个港口出发 母港PORT DE 并将他们的捕获物降落在另一个港口 登陆港PORT LA 我正在处理扇贝活重 吨 上岸量S
  • 如何在 vim 中搜索没有前面“\r”的“\n”?

    如果 Vim 看到不一致的行结尾 则不会转换文件格式 我怎样才能找到那些 零宽度后向断言 如何在 vim 中搜索没有前面 r 的 n r
  • JAVA Quartz - 如果上一个作业仍在运行,则跳过作业并等待下一个计划时间

    我有一个 Java 解决方案 使用Quartz 2 2 3 我所拥有的是 我的工作类别已注释 DisallowConcurrentExecution为了避免并发 所以同一个作业不能每次运行一次 OK 它是一个 CRON 每 1 小时运行一次
  • R:使用paste()定义列名

    问题很简单 但我找不到解决方案 我想创建一个新的数据框 定义列的名称paste0 理想情况下 我想做这样的事情 其中一个不起作用 mydataframe lt data frame id 1 paste0 Here my column na
  • 当使用自定义动画的片段替换事务正在运行时暂停活动时出现幽灵行为

    我正在使用片段事务在按下按钮时在组件之间切换 为了使整体体验更好 我添加了自定义动画 将旧片段从左侧动画化 将新片段从右侧动画化 启动此事务的代码如下所示 supportFragmentManager beginTransaction se
  • 如何在 C# 中格式化日期时间,如“Oct. 10, 2008 10:43am CST”

    有没有一种干净的方法将 DateTime 值格式化为 Oct 10 2008 10 43am CST 我需要它带有正确的缩写和小写的 am 或 pm 等 我自己做过 但它很丑 所以我正在寻找不同的方法 Thanks 由于 tt 格式字符串说
  • PHP 绑定文本域失败

    我正在尝试在运行 PHP 7 1 的 CentOS 服务器上设置 PHP 国际化 这是我的目录结构 home project public html locale japanese LC MESSAGES messages po home
  • Django 检查字段是否为空?

    我从数据库中检索了一个对象 该对象有一个外键字段 其属性blank True 我如何检查它是否实际上留空 谢谢您的帮助 blank True只是告诉管理站点该字段可以留空 除非你设置null True同样 如果您尝试输入空白值 您的数据库也
  • 对具有多个条件的列表进行排序 Ruby on Rails

    我希望能够根据 4 个不同的标准对列表中的 12 支球队进行排名 我将有一个名为 Teams 的数据库表 每个团队将有各种列 例如 matches won matches lost 等 我想根据 matches won 按顺序显示它们 这很
  • 你能在 Mongoose 中为子文档定义实例方法吗?

    如果我在 Mongoose 中有一个架构 其定义如下 var subSchema new Schema some String var topSchema new Schema subs subSchema var topModel mon
  • MATLAB 绘图轴所在框中缺少黑线

    在 MATLAB 中绘制图形时 我注意到保存轴的黑盒部分丢失了 左侧和底部 我尝试过发出 box off box on 命令没有成功 你知道我可以做什么来获得轴上相应的黑线吗 Note 我正在使用 OpenGL 渲染器 set 0 Defa
  • Angular 通用元标记在页面源中不可见

    当我查看在我的角度通用项目的构造函数中设置标题和元标记的页面时 标题显示在选项卡中 当我单击 检查元素 并转到时 我可以在 html 中看到元标记和标题到 html 文档的头部 但是 如果您仅单击 查看页面源代码 则不会显示标签 也不会显示
  • 自定义dateutil.parser世纪推理逻辑

    我正在处理具有两位数年份的旧文本文件 其中默认世纪逻辑dateutil parser似乎效果不太好 例如 珍珠港袭击事件并未发生dparser parse 12 7 41 返回 2041 12 7 回滚到 1900 年代的内置世纪 阈值 似