PythonでJSON文字列をコマンドライン引数として渡す方法について説明します。この方法は、スクリプトに動的なデータを渡すための一般的な手法です。
JSON文字列を引数として渡す
PythonスクリプトにJSON文字列を引数として渡すためには、sys.argv
を使用します。sys.argv
は、コマンドライン引数をリストとして保持します。最初の要素、sys.argv[0]
はスクリプト名です。その後の要素はコマンドラインから渡された引数です。
以下に、JSON文字列を引数として受け取り、それをPythonの辞書として解析する簡単なスクリプトを示します。
import sys
import json
# コマンドライン引数からJSON文字列を取得
json_str = sys.argv[1]
# JSON文字列をPythonの辞書に変換
data = json.loads(json_str)
# 辞書を出力
print(data)
このスクリプトは、次のようにして実行できます。
python script.py '{"key": "value"}'
注意点
JSON文字列をコマンドライン引数として渡す際には、シェルが引数を正しく解析できるように、適切にエスケープする必要があります。具体的には、JSON文字列内のダブルクォートはバックスラッシュ(\
)でエスケープする必要があります。
以下に、エスケープしたJSON文字列を引数として渡す例を示します。
python script.py "{\\"key\\": \\"value\\"}"
このように、PythonでJSON文字列をコマンドライン引数として扱う方法は非常に便利で、スクリプトに動的なデータを渡すための一般的な手法です。