pgadmin4 1.3引发CSV导出损失

时间:2017-04-07 19:39:53

标签: postgresql pgadmin pgadmin-4

我安装了pgadmin4 1.3(在一个docker容器中),除CSV导出外,一切正常。

我在偏好设置中正确填写了二进制路径,但它仍无效。我没有错误消息。当我单击CSV导出图标时没有任何反应。

这是我的配置:

  • Python版本:2.7.12
  • Postgresql版本:9.5
  • Pgadmin版本:4.1.3
  • Ubuntu 16.04

如果某人有同样的问题并希望知道如何解决,请你帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我终于找到了罪魁祸首!

我查看了/var/log/apache2/errors.log,并在CSV创建过程中看到UnicodeEncodeError。错误来自此文件:

/usr/local/lib/python2.7/dist-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py

第651行,在编写像加重字符这样的特殊字符时,CSV编写器被破坏了(我使用Python 2,我想我不会遇到Python 3的问题):

csv_writer.writerows(results)

最终我使用unicodecsv库解决了它:

  • pip install unicodecsv
  • 第22行:将import csv替换为import unicodecsv as csv
  • 第647行:将csv.DictWriter(res_io, fieldnames=header, delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC)替换为csv.DictWriter(res_io, encoding='utf-8', fieldnames=header, delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC)

希望它可以帮助其他人,而这个编码错误没有修复!