python json loads遇到中文的情况分析。
来源:互联网 发布:全球智能手机销售数据 编辑:程序博客网 时间:2024/06/10 04:52
使用loads方法即可将json字符串转换成python对象,对应关系如下:
一。但在使用json模块的时候需要注意的是对中文的处理,loads方法如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
#!/usr/bin/env python# -*- coding:utf-8 -*-import jsonjs = json.loads('{"insun": "泰囧 / 人在囧途2 / Lost in Thailand "}')print json.dumps(js)print json.dumps(js,ensure_ascii=False)
{"insun": "\u6cf0\u56e7 / \u4eba\u5728\u56e7\u90142 / Lost in Thailand "}
{"insun": "泰囧 / 人在囧途2 / Lost in Thailand "}
二。如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
对于:
dataDict = json.loads(dataJsonStr);其中dataJsonStr是json字符串,如果其编码本身是非UTF-8的话,比如是GB2312的,那么上述代码,就会导致出错。改为对应的:
dataDict = json.loads(dataJsonStr,encoding="GB2312");就可以了。
此处,即对应着上面函数解释中的:
If s is astr instance and is encoded with an ASCII based encoding other than UTF-8 (e.g. latin-1), then an appropriateencoding name must be specified
三。如果要解析的字符串,本身的编码类型,不是基于ASCII的,那么,调用json.loads之前,需要先将对应字符串,转换为Unicode类型的
还是以上述的:
dataDict = json.loads(dataJsonStr, encoding="GB2312");
为例,即使你此处的字符串dataJsonStr,已经通过encoding指定了合适的编码,但是由于其中,包含了其他的编码的字符,比如我本身 dataJsonStr是GB2312的字符,但是其中又包含了的一些日文字符,此时,json.loads还是会出错,因为此处的 dataJsonStr不是以ASCII为基础的字符编码,所以,需要先去将dataJsonStr转换为Unicode,然后再调用 json.loads,就可以了。
代码如下:
dataJsonStrUni = dataJsonStr.decode("GB2312");
dataDict = json.loads(dataJsonStrUni, encoding="GB2312");
官网:
18.2. json — JSON encoder and decoder
http://docs.python.org/2/library/json.html
- json.dumps(obj,skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,encoding="utf-8", default=None, sort_keys=False, **kw)
- json.loads(s[,encoding[, cls[, object_hook[,parse_float[, parse_int[, parse_constant[,object_pairs_hook[, **kw]]]]]]]])
参考:
python json 中文
Python JSON模块解码中文的BUG
http://www.douban.com/note/214822809/
使用python处理json
http://www.giser.net/?p=990
python下调用json.dumps中文显示问题解决办法
http://blog.csdn.net/sagittar/article/details/6169605
Python解析json数据结构范例
http://hi.baidu.com/leejun_2005/item/fc688affc196f8723c198b7c
http://www.crifan.com/use_python_json_loads_parse_string_contain_newline_will_fail_error/
- python json loads遇到中文的情况分析。
- python执行json.loads(...)时遇到的错误
- python基础:Json的dumps和loads
- day14 python json的loads 和dumps
- python json的dumps与loads
- python json loads dumps
- Python json dumps() && loads()
- Python下json.loads()中文字符出错解决
- python对json的相关操作 json.dumps() json.loads()
- Python中Json库loads方法ValueError异常分析
- Python日常:json.loads&json.dumps的使用
- [python]json.loads 几种错误 解决方案
- python string转为dict --- json.loads
- Python json,区分loads和dumps
- Python json,区分loads和dumps
- python json (loads(),load(),jump(),jumps())
- python解析json文件回顾(load/loads)
- [python]json.loads 几种错误 解决方案
- CBP详解;Skip宏块与Direct预测模式浅析
- 深度研究C语言变长函数
- js在鼠标周围加旋转文字
- WinHex手动恢复分区表及误删除文件
- 我的数据结构(1)
- python json loads遇到中文的情况分析。
- 浅谈oracle中row_number() over()分析函数用法
- 虚拟运营商政策松口
- 常用颜色值
- Eclipse 高亮显示选中的相同变量
- MPPT “最大功率点跟踪”
- ARM Cortex系列(A8/A9/A15/A7) NEON多媒体处理SIMD引擎优化
- 让div内可输入内容
- Qt+VS2005(配置步骤)