python dateutil unicode警告

Seb*_*ian 6 python unicode twitter python-dateutil

我使用sixohsix库从Twitter API解析一些推文的数据.我试图将推文的日期转换为我的语言环境:

from pytz import timezone
from dateutil import parser

timestamp = parser.parse(tweet["created_at"])
timestamp_arg = timestamp.astimezone(timezone('America/Buenos_Aires'))
Run Code Online (Sandbox Code Playgroud)

我得到一个unicode警告:

dateutil\parser.py:339:UnicodeWarning:Unicode相等比较无法将两个参数都转换为Unicode - 将它们解释为在time.tzname中的不等elif res.tzname和res.tzname:

我试过了

parser.parse(str(tweet["created_at"]))
parser.parse(unicode(tweet["created_at"]).encode())
Run Code Online (Sandbox Code Playgroud)

但没有变化.

除了警告,似乎没有什么打破.有谁知道为什么会发生这种情况,以及如何解决这个问题?

谢谢!

更新:

我尝试了相同的例子,但硬编码时间到字符串,没有警告的情况下工作.此外,根据该警告味精问题似乎在解析调用的情况发生,在parser.py:339时做

res.tzname in time.tzname
Run Code Online (Sandbox Code Playgroud)

也许是因为res是unicode而time.tzname不是??

Emi*_*röm 5

这是dateutil中的一个未解决的错误(从2.2版本开始),只发生在Windows上:https://bugs.launchpad.net/dateutil/+bug/1227221

除非您尝试使用非ascii字符解析时区,否则Dateutil仍将正常运行.我认为这很不寻常,所以你应该没问题.

最简单的解决方法可能只是为了消除错误.

import warnings
warnings.filterwarnings("ignore", category=UnicodeWarning)
Run Code Online (Sandbox Code Playgroud)