Python通过json返回一个字符串

时间:2013-12-04 14:53:52

标签: python unicode unicode-string python-unicode

我遇到了问题,首先我做了一个接受邮寄请求的api,
然后以JSON响应。

发布请求数据已编码,我接受了发布数据,并获得了数据 没错,然后我用JSON格式的新数据做出回应。

但是当我返回JSON时,我发现该字符串是unicode格式,例如

{
  'a':'\u00e3\u0080'
}

但是,我希望得到这样的格式:

{
  'a':"ã"
}

我想要这种格式,因为我发现这种unicode格式在IE8中效果不佳。

是的,IE8。

我可以为这个问题做些什么? 谢谢!

1 个答案:

答案 0 :(得分:3)

如果您使用的是标准库json模块,请指定ensure_ascii=False为您提供所需内容。

例如:

>>> print json.dumps({'a': u'ã'})
{"a": "\u00e3"}
>>> print json.dumps({'a': u'ã'}, ensure_ascii=False)
{"a": "ã"}

根据json.dump documentation

  

如果 ensure_ascii 为True(默认值),则所有非ASCII字符均为   输出使用\ uXXXX序列进行转义,结果为str   实例仅由ASCII字符组成。如果ensure_ascii是   错误,写入fp的一些块可能是unicode实例。这个   通常是因为输入包含unicode字符串或   使用编码参数。 ...


顺便说一句,你是什么意思“ unicode格式在IE8中运行不正常,”?