gpt4 book ai didi

python - 解码为字符串

转载 作者:行者123 更新时间:2023-12-01 01:41:43 24 4
gpt4 key购买 nike

在 Python3 中,我收到以下错误消息:

ValueError:时间数据“\u200e07-30-200702:38 PM”与格式“%m-%d-%Y%I:%M %p”不匹配

from datetime import datetime

dateRegistered = '\u200e07-30-200702:38 PM'
# dateRegistered = '07-30-200702:38 PM'
dateRegistered = datetime.strptime(dateRegistered, '%m-%d-%Y%I:%M %p')
print (dateRegistered)

上面的代码用于复制该问题。如果我取消注释该行,它就会起作用。我收到的字符串似乎已编码,但我无法找出它正在使用哪种编码。或者我有一个non-printable character在我的字符串中?

print ('\u200e07-30-200702:38 PM')
>>>> 07-30-200702:38 PM

最佳答案

您有一个U+200E LEFT-TO-RIGHT MARK您输入的字符。这是non-printing typesetting directive ,指示显示文本的任何内容切换到从左到右模式。当打印到已经设置为从左到右显示的控制台(例如西方世界的绝大多数终端)时,该字符串与没有标记的打印看起来没有任何不同。

由于它不是日期的一部分,您可以删除这些字符:

datetime.strptime(dateRegistered.strip('\u200e'), '%m-%d-%Y%I:%M %p')

或者如果它始终存在,请将其显式添加到您正在解析的格式中,就像 -: 空格字符已经是您格式的一部分:

datetime.strptime(dateRegistered, '\u200e%m-%d-%Y%I:%M %p')

演示:

>>> from datetime import datetime
>>> dateRegistered = '\u200e07-30-200702:38 PM'
>>> datetime.strptime(dateRegistered.strip('\u200e'), '%m-%d-%Y%I:%M %p')
datetime.datetime(2007, 7, 30, 14, 38)
>>> datetime.strptime(dateRegistered, '\u200e%m-%d-%Y%I:%M %p')
datetime.datetime(2007, 7, 30, 14, 38)

关于python - 解码为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51813129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com