0

我有一个较早的问题,我已将其删除以支持这个问题。因为我错误地假设它与 dateutil 版本有关。

test1 = dateutil.parser.parse("2013-01-24T16:50:42+00:00")  

这工作正常,我得到一个日期时间。

dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime.datetime) else None
test2 =  json.dumps(event.due_date_time, default=dthandler)

print test2-->"2013-01-24T16:50:42+00:00"

这在我看来就像一个普通的字符串

test3 = dateutil.parser.parse(test2)

这崩溃说ValueError: unknown string format

那么如何将 json 字符串转换为“普通”字符串?

4

2 回答 2

0

您忘记了 JSON 在字符串周围加上引号。您具有以下值:

jsonvalue = '"2013-01-24T16:50:42+00:00"'

注意那里的双引号

您需要json.loads()再次使用该方法加载该值,在这种情况下,它只是再次删除引号:

>>> print json.loads(jsonvalue)
2013-01-24T16:50:42+00:00

请注意,现在引号又消失了。.strip('"')如果你有一个混合,你也可以去掉引号:

>>> print jsonvalue.strip('"')
2013-01-24T16:50:42+00:00

但既然您期待 JSON 数据,为什么不将其视为 json 数据并为此使用json模块将其转回 Python 数据。

于 2013-01-26T18:13:17.173 回答
0

引号字符串中(打印不添加它们)。

所以test3 = dateutil.parser.parse(test2[1:-1])会起作用。

于 2013-01-26T18:13:54.230 回答