はじめに
JSON ファイルについてのの備忘録です💁
初心者です😅
間違えてる部分多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇
今回、AWSを構築した際に、jsonに対しての知識不足を感じたのでまとめました。
🦁 結論 🦁
押さえておくべき点
- JSONは、軽量なデータ交換フォーマット。人間にも読みやすく、機械にも解析しやすい構造
- 多くのプログラミング言語で容易に扱えるため、ウェブアプリケーションでのデータ交換に広く使用されてる
- JSONはテキストベースで、JavaScript以外の言語でも簡単に読み書きできる
- JSONは、名前と値のペア(オブジェクト)、または値の順序付きリスト(配列)で構成
タイミング
- クライアントとサーバー間でデータを送受信する際によく使用する
- ウェブアプリケーションの設定情報を保存する時に使う
- モバイルアプリがサーバーと通信する際、JSONは軽量で効率的なデータフォーマットとしてよく利用される
- ログファイル、異なるシステム間、フロントエンドとバックエンドのデータ通信などでよく利用する
注意点
- JSONはUTF-8エンコーディングを使用することが推奨
- JSONは数値、文字列、ブーリアン、配列、オブジェクト、nullをサポートされてるが、日付や複雑なデータ型は直接サポートしてない
- 大規模なJSONデータの解析や生成は、パフォーマンスに影響を与える可能性がある
サーバーとのやり取りの例
サーバーへJanコードデータでリクエストを送信
サーバーから「商品名」「価格」をレスポンスで返してくれる
この流れをまとめてます。
(AWSのlambdaで作成)
データをJSONに置き換える
json.dumps(jan_code)
この関数はPythonの辞書をJSON形式の文字列に変換。
ここでは、jan_code という辞書をJSON形式の文字列に変換
sample.py
import json
# 商品名と価格の辞書データ
jan_code = {
"jan_code": 1234567891234,
}
# 辞書データをJSON文字列に変換
jan_code_json = json.dumps(jan_code)
置き換えたデータを元にリクエストする
requests.post(api_url, json=jan_code_json)
requests.post は、指定されたURL(api_url)に対してPOSTリクエストを送信するためのメソッド。
sample.py
api_url = 'https://example.com/api'
response = requests.post(api_url, json=jan_code_json)
受け取るレスポンスを定義する(JSONを解析する)
response.json()
このメソッドはサーバーから受け取ったレスポンスをJSON形式で解析し、Pythonの辞書に変換。
sample.py
if response.status_code == 200:
response_data = response.json()
受け取ったJSONファイルデータを変換する
json.loads(output_dict)
json.loads 関数はJSON形式の文字列をPythonの辞書に変換。
sample.py
if response_data.get('status') == 'SUCCEEDED':
output_dict = response_data.get('output')
output_data = json.loads(output_dict)
body_dict = output_data.get('body')
lambda_product_name = body_dict.get('lambda_product_name')
lambda_price = body_dict.get('lambda_price')
# 辞書に追加
goods_status_details = {} # 既存の辞書または新しい辞書
goods_status_details[jan_code["jan_code"]] = (lambda_product_name, lambda_price)
print(f"処理成功: {lambda_product_name}, {lambda_price}")