You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS CLI结合jq导出DynamoDB数据到CSV时遇编码及JSON解析错误

DynamoDB导出CSV:JSON截断与编码错误解决

问题重现

执行以下命令导出DynamoDB数据到CSV时出现双重错误:

aws dynamodb scan --table-name MyTable --select ALL_ATTRIBUTES --page-size 500 --max-items 100000 --output json --profile production | jq -r '.Items' | jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ].S])[] | @csv' > export.my-table.csv

错误信息:

'charmap' codec can't encode characters in position 1-3: character maps to <undefined> parse error: Unfinished JSON term at EOF at line 5097, column 21

错误1:JSON截断(Unfinished JSON term at EOF)

原因

管道传输大体积JSON数据时,缓冲限制、分页处理不完整或网络中断都可能导致jq接收到的JSON不完整,触发解析错误;多次调用jq的管道操作也会增加数据截断风险。

解决步骤

  1. 先导出完整JSON到临时文件,规避管道传输的截断问题:
    aws dynamodb scan --table-name MyTable --select ALL_ATTRIBUTES --page-size 500 --max-items 100000 --output json --profile production > temp_full_data.json
    
  2. 用单次jq处理临时文件:
    jq -r '.Items | (.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ].S])[] | @csv' temp_full_data.json > export.my-table.csv
    
  3. 若目标数据量超过100000条,去掉--max-items参数或调整为更大值,确保能获取到所有需要的数据。

错误2:编码不兼容(charmap codec can't encode characters)

原因

Windows系统默认使用GBK/CP1252编码,当CSV包含非ASCII字符(如中文、特殊符号)时,重定向输出会因编码不匹配报错;Linux/macOS极少出现,但终端编码非UTF-8时也会触发该问题。

解决步骤

  • Windows PowerShell环境:
    先设置终端编码为UTF-8,再执行导出命令:
    $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
    aws dynamodb scan ... | jq ... > export.my-table.csv
    
    或直接用Out-File指定编码:
    aws dynamodb scan ... | jq ... | Out-File -Encoding UTF8 export.my-table.csv
    
  • Linux/macOS环境:
    确保终端编码为UTF-8,必要时执行以下命令设置:
    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    

优化命令(合并两次jq调用)

把两次jq操作合并为一次,减少管道环节的出错概率:

aws dynamodb scan --table-name MyTable --select ALL_ATTRIBUTES --page-size 500 --max-items 100000 --output json --profile production | jq -r '.Items | (.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ].S])[] | @csv' > export.my-table.csv

内容的提问来源于stack exchange,提问作者Bruno F S Leite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:50:27