Python处理JSON时的值报错及编码报错的两则解决实录 | 您所在的位置:网站首页 › pythonjson文件读写 › Python处理JSON时的值报错及编码报错的两则解决实录 |
这篇文章主要介绍了Python处理JSON时的值报错及编码报错的两则解决实录,在这里还是想建议一下使用Python 3.x版本,Python 3默认的Unicode编码能在实际使用中为我们省去不少问题,需要的朋友可以参考下 1、ValueError: Invalid control character at: line 1 column 8363 (char 8362)使用json.loads(json_data)时,出现: ValueError: Invalid control character at: line 1 column 8363 (char 8362)出现错误的原因:字符串中包含了回车符(\r)或者换行符(\n) 解决方法:(1)对这些字符转义: json_data = json_data.replace('\r', '\\r').replace('\n', '\\n')(2)使用关键字strict: json.loads(json_data, strict=False)strict默认是True,它将严格控制内部字符串,将其设置为False,便可以允许你\n \r。 2、UnicodeEncodeError: ascii codec can't encode错误在windows下写的python脚本,放到linux下运行,直接报: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128) 出错原因:Python2.7在安装时,默认的编码是ascii,当程序中出现非ascii编码时,Python的处理常常会报这样的错,不过在Python3中就不会有这样的问题。 解决方法:(1)临时解决方法: 在代码前加入: import sys reload(sys) sys.setdefaultencoding('utf8')(2)一劳永逸: 在Python的lib\site-packages文件夹下新建一个sitecustomize.py,内容如下: # encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')这样的话,系统在Python启动的时候,自行调用该文件,设置系统的默认编码。 |
CopyRight 2018-2019 实验室设备网 版权所有 |