この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
AWS CLI でコマンドを実行するとError parsing parameter
というエラーが表示されます。
AWS公式ドキュメントのコマンド例から値だけを書き換えているので、コマンドは間違っていないと思うのですが、対処方法を教えてください。
C:\> aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}'
Error parsing parameter '--document-location': Expected: '=', received: ''' for input:
'{S3Object:{Bucket:hato-test-bucket,Name:TEST_OCR.pdf}}'
^
どう対応すればいいの?
次の通りにコマンドを置き換えて、実行してください。
"
⇨\"
'
⇨"
# 変更前
aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}'
# 変更後
aws textract start-document-text-detection --document-location "{\"S3Object\":{\"Bucket\":\"hato-bucket\",\"Name\":\"TEST_OCR.pdf\"}}"
コマンドで使用できる引用符('
や"
)は、OS(WindowsやMac、Linux)によって異なり、Windowsではシングルクォーテーション('
)を引用符として使用できません。
実行したコマンド例は、Mac、Linux向けであり、Windowsで実行する場合は、あらかじめダブルクォーテーション("
)とエスケープ(\"
)に置き換えて実行してください。
参考資料
Windows コマンドプロンプトでは、JSON データ構造を二重引用符
" "
で囲む必要があります。また、コマンドプロセッサによって、JSON に埋め込まれた二重引用符が誤って解釈されないようにするには、以下の例のように、JSON データ構造内の各二重引用符\
をエスケープする (バックスラッシュ"
文字で始める) 必要もあります。