为什么json.dumps用“ \ uxxxx”转义非ascii字符

在Python 2中,该函数json.dumps()将确保所有非ascii字符均以逸出\uxxxx

Python 2杰森

但这不是很令人困惑,因为它\uxxxx是一个Unicode字符,应该在Unicode字符串中使用。

输出的json.dumps()是a str,这是Python 2中的字节字符串。因此,它不应该将字符转义为\xhh吗?

>>> unicode_string = u"\u00f8"

>>> print unicode_string

ø

>>> print json.dumps(unicode_string)

"\u00f8"

>>> unicode_string.encode("utf8")

'\xc3\xb8'

回答:

这就是重点。您会得到一个字节字符串,而不是Unicode字符串。因此,Unicode字符需要转义才能生存。JSON允许转义,因此提供了一种表示Unicode字符的安全方式。

以上是 为什么json.dumps用“ \ uxxxx”转义非ascii字符 的全部内容, 来源链接: utcz.com/qa/417873.html

回到顶部