Python 熊猫要扔';ascii';即使设置为encoding=';utf-8';

Python 熊猫要扔';ascii';即使设置为encoding=';utf-8';,python,django,pandas,mod-wsgi,Python,Django,Pandas,Mod Wsgi,我有一个带有utf-8字符的文件。将其加载到数据帧中(编码显式设置为utf-8),现在尝试将其写入csv。我一直收到一个独角兽的错误,我不知道为什么。我已经设置了encoding='utf-8'(也尝试了encoding='utf8'),但我仍然得到了它,参考了“ascii”编解码器 一个线索是,我在Windows机器上测试时没有发现问题,但我在Ubuntu机器上确实发现了问题 我尝试过从0.25->1.0升级熊猫,但没有任何区别 还要注意的是,这在Django中使用 df.to_csv

我有一个带有utf-8字符的文件。将其加载到数据帧中(编码显式设置为utf-8),现在尝试将其写入csv。我一直收到一个独角兽的错误,我不知道为什么。我已经设置了
encoding='utf-8'
(也尝试了
encoding='utf8'
),但我仍然得到了它,参考了“ascii”编解码器

一个线索是,我在Windows机器上测试时没有发现问题,但我在Ubuntu机器上确实发现了问题

我尝试过从0.25->1.0升级熊猫,但没有任何区别

还要注意的是,这在Django中使用

    df.to_csv(f, index=False, line_terminator='\\n', encoding='utf-8')

  File "/home/webapp/.virtualenvs/django/lib/python3.6/site-packages/pandas/core/generic.py", line 3203, in to_csv
    formatter.save()
  File "/home/webapp/.virtualenvs/django/lib/python3.6/site-packages/pandas/io/formats/csvs.py", line 204, in save
    self._save()
  File "/home/webapp/.virtualenvs/django/lib/python3.6/site-packages/pandas/io/formats/csvs.py", line 323, in _save
    self._save_chunk(start_i, end_i)
  File "/home/webapp/.virtualenvs/django/lib/python3.6/site-packages/pandas/io/formats/csvs.py", line 354, in _save_chunk
    libwriters.write_csv_rows(self.data, ix, self.nlevels, self.cols, self.writer)
  File "pandas/_libs/writers.pyx", line 65, in pandas._libs.writers.write_csv_rows
UnicodeEncodeError: 'ascii' codec can't encode character '\\xc7' in position 67: ordinal not in range(128)

事实证明,部分问题源于Apache/mod_wsgi的一个问题,它默认使用ANSI首选编码。我找到了一个很好的讨论和解决方案,该解决方案包括将系统的默认编码设置为UTF-8,类似于Apache conf文件中的一个la:

WSGIDaemonProcess my-django-site lang='en_US.UTF-8' locale='en_US.UTF-8'
我仍然不确定to_csv()的编码参数为什么不覆盖默认值