【问题标题】:UnicodeEncodeError when trying to export dynamo db table and write to csv file尝试导出发电机数据库表并写入 csv 文件时出现 UnicodeEncodeError
【发布时间】:2020-04-25 19:29:54
【问题描述】:

C:\Users\nishkumari\Desktop>export-dynamodb -t user-prods -f csv -o user-prods.csv 导出 dynamodb:用户产品 连接到 AWS DynamoDb 正在下载 2812 条记录..... 100% 总下载记录:2812 写入 csv 文件。 回溯(最近一次通话最后): 文件“C:\Users\nishkumari\AppData\Local\Programs\Python\Python37-32\Scripts\export-dynamodb-script.py”,第 11 行,在 load_entry_point('export-dynamodb==2.2.1', 'console_scripts', 'export-dynamodb')() 调用中的文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\click\core.py”,第 722 行 返回 self.main(*args, **kwargs) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\click\core.py”,第 697 行,在 main rv = self.invoke(ctx) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\click\core.py”,第 895 行,在调用中 返回 ctx.invoke(self.callback, **ctx.params) 调用中的文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\click\core.py”,第 535 行 返回回调(*args, **kwargs) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\exportdynamodb\entrypoints\main.py”,第 28 行,在 main write_to_csv_file(数据,输出文件名) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\site-packages\exportdynamodb\entrypoints\main.py”,第 136 行,在 write_to_csv_file writer.writerows(数据['项目']) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\csv.py”,第 158 行,在 writerows 返回 self.writer.writerows(map(self._dict_to_list, rowdicts)) 文件“c:\users\nishkumari\appdata\local\programs\python\python37-32\lib\encodings\cp1252.py”,第 19 行,编码 返回 codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError:“charmap”编解码器无法编码位置 108-109 中的字符:字符映射到

【问题讨论】:

  • 嗨西田。请花一些时间解释您的错误、错误发生的位置以及您的预期行为。
  • 嗨,我运行了 export-dynamodb -t user-prods -f csv -o user-prods.csv 命令,它将我的 dynamodb 中的 user-prods 表导出为 csv 格式,但它抛出了这个错误并且只导出很少的记录。

标签: amazon-web-services csv amazon-dynamodb export


【解决方案1】:

exportdynamodb 调用 open 而不指定 encoding ref

在大多数平台(Windows 除外)中,文本文件的默认编码为“UTF-8”。

试试set PYTHONUTF8=1。它启用 UTF-8 模式。在 UTF-8 模式下,默认文本编码更改为 UTF-8。

有关 UTF-8 模式的更多信息,请参阅 https://docs.python.org/3/using/windows.html#utf-8-mode

【讨论】:

    【解决方案2】:

    请尝试以下选项

    1. chcp 65001
    2. 设置 PYTHONIOENCODING=UTF-8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-26
      • 2016-12-21
      • 2011-10-19
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多