文档首页> 数据治理中心 DataArts Studio> 常见问题> 数据开发> 执行Python脚本,报错UnicodeEncodeError :‘ascii' codec cant encode characters in position 63-64 : ordinal not in range ( 128 )
更新时间:2024-04-28 GMT+08:00
分享

执行Python脚本,报错UnicodeEncodeError :‘ascii' codec cant encode characters in position 63-64 : ordinal not in range ( 128 )

在DataArts Studio的python脚本中,设置参数json.dumps(json_data, ensure_ascii=False)时,执行报错UnicodeEncodeError :‘ascii' codec cant encode characters in position 63-64 : ordinal not in range ( 128 ),如下图所示。

图1 报错信息

原因分析

DataArts Studio默认用的python2的解释器,python2默认是编码格式是ASCII编码,因ASCII编码不能编码汉字所以报错。因此需要将编码格式转化为“utf8”。

解决方法

  1. 用python3解释器,在主机上做一个软连接,如下图所示。
    图2 主机上做软连接
  2. 在文件开始标准编码方式:

    # -*- coding: utf-8 -*-;或者设置主机的编码格式:在python安装目录的Lib\site-packages文件夹下新建一个sitecustomize.py文件,在文件中写入:

    # encoding=utf8

    #import sys

    #reload(sys)

    #sys.setdefaultencoding('utf8')

  3. 重启python, 通过sys.getdefaultencoding()查看默认编码,这时为'utf8'。
分享:

数据开发 所有常见问题

more