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



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

你忘记了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数据。

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

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

相关内容

  • 没有找到相关文章

最新更新