use*_*079 0 python json python-2.7
json.loads('{"name": "Sam"}')
{u'name': u'Sam'}
Run Code Online (Sandbox Code Playgroud)
这应该不显示
{"name": "Sam"} ?
Python 2.7
有什么问题?
首先,你的标题背叛了一些混乱,它说"将字符串转换为JSON".您没有转换为JSON,而是将以JSON格式编码的字符串反序列化为Python对象.
其次,你问:
这应该不显示
{"name": "Sam"}?
不,它不应该.那些意味着Python 2 str类型,它们是字节串.的JSON规范是很清楚的:
字符串是零个或多个Unicode字符的序列,用双引号括起来,使用反斜杠转义.
所以Python json解析器正确地返回unicode数据类型,在Python 2中,它将使用a预先修复它的表示u.请注意,它不是字符串的一部分,它是其表示的一部分.
请注意,在Python 3中(您可能应该使用它),str类型对应于Python 2 unicode类型,旧的字节字符串属于bytes该类.如果us真的打扰你,那么切换到Python 3 :)
所以,总之,没有问题.根据JSON标准,json字符串是unicode字符串,Python json解析器在Python 2中反序列化为unicode数据类型.这是预期的,可取的,记录良好的行为.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |