• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python处理JSON时的值报错及编码报错的两则解决实录

python 搞代码 4年前 (2022-01-07) 34次浏览 已收录 0个评论

这篇文章主要介绍了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) s<div style="color:transparent">来源gaodai.ma#com搞#代!码网</div>ys.setdefaultencoding('utf8') 

这样的话,系统在Python启动的时候,自行调用该文件,设置系统的默认编码。

以上就是Python处理JSON时的值报错及编码报错的两则解决实录的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python处理JSON时的值报错及编码报错的两则解决实录

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址