【问题标题】:pgadmin4 1.3 raises CSV export brokenpgadmin4 1.3 引发 CSV 导出损坏
【发布时间】:2017-09-03 07:08:38
【问题描述】:

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

我在 Preferences 中正确填写了 Binary Paths,但它仍然无法正常工作。我没有错误信息。当我单击 CSV 导出图标时,没有任何反应。

这是我的配置:

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

如果有人遇到同样的问题,希望知道如何解决,您能帮忙吗?

谢谢!

【问题讨论】:

  • 我们(社区)已在 1.5 中修复了此问题。所以你不需要在 ../pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py 文件中进行修改。请参阅问题 2253、2314、2360,redmine.postgresql.org/versions/48

标签: postgresql pgadmin pgadmin-4


【解决方案1】:

我终于找到了罪魁祸首!

我查看了 /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)

希望在此编码错误未修复时对其他人有所帮助!

【讨论】:

  • 我们(社区)已在 1.5 中修复了此问题。所以你不需要在 ../pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py 文件中进行修改。请参阅问题 2253、2314、2360,redmine.postgresql.org/versions/48
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
相关资源
最近更新 更多