我之前有一个问题,我删除了这个问题。因为我错误地认为它与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字符串转换为'普通'字符串?
答案 0 :(得分: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数据。
答案 1 :(得分:0)
引号 in 字符串(print不会添加它们)。
所以test3 = dateutil.parser.parse(test2[1:-1])
会有用。