Nifi ExecuteStreamCommand返回UnicodeEncodeError

时间:2019-12-20 22:01:15

标签: python pandas unicode apache-nifi unicode-normalization

我正在通过ExecuteStreamCommand在Nifi中执行python脚本。在命令行中运行文件时,没有出现任何错误,并且输出正确。当我在Nifi中运行相同文件时,我收到unicode错误。有解决方法吗?

错误日志:

'unicodeencodeerror python 'charmap' codec can't encode charecter '\u221'

我正在保存由多种数据类型组成的pandas df。引起错误的代码:

wo_new.to_csv(sys.stdout, encoding='utf-8')

在Nifi ExecuteStreamCommand属性内:

命令路径:Python

命令参数:引用.py文件的位置

我已经尝试过的事情:

  • 强制utf-8编码
  • 强制Windows编码cp1252(错误日志显示anaconda所引用的类型)
  • 通过这两种技术https://vladikk.com/2017/03/30/nifi-unicode/启用unicode
  • 通过unicodedata将df标准化为ascii(此应用程序不起作用-用于在列级以及单个字符串上出现.str错误)

1 个答案:

答案 0 :(得分:0)

在每列上使用文本强制utf-8编码似乎可以解决问题。我不知道为什么在保存输出时应用编码没有成功。我使用了以下代码:

x.str.encode('utf-8')