问题描述:

服务器单独运行脚本没问题,跑定时任务时报错内容为:UnicodeEncodeError: 'ascii' codec can't encode characters in position

报错原因:

python使用cx_Oracle包执行读取sql语句时,由于sql中出现了汉字而抱编码相关错误

解决办法:

程序开头加入下列两行代码

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

并把 " nencoding='utf8' " 添加在下列代码中

with cx_Oracle.connect("wangy/wangy@192.168.3.2:1521/orcl",nencoding='utf8') as conn:
    df = pd.read_sql(sql,conn)

最终解决题中报错问题。

另:定时任务的脚本中最好是用绝对路径,不然也会报错。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐