如何将json字符串转换为普通字符串?

时间:2013-01-26 18:08:15

标签: python json datetime python-2.7 python-dateutil

我之前有一个问题,我删除了这个问题。因为我错误地认为它与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字符串转换为'普通'字符串?

2 个答案:

答案 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])会有用。