はじめに
python未経験ですが、業務でpythonを使ったAPIを追加開発することになりました。
今後の備忘録として、調べた内容を軽くまとめておこうと思います。
list
他の言語で言うところの配列(だと解釈してます。)
isinstance()
型のチェックを行う際に利用しました。
基本の形
isinstance(型を調べたいデータ, 型)
例
isinstance("apple", str) #True
isinstance("apple", int) #False
isdigit()
対象文字列の中身が数値かどうかチェックする際に利用しました。
基本の形
文字列.isdigit()
例
"123".isdigit() # True
"123a".isdigit() # False
items()
for文の記述する際に利用しました。
例
fruits = {"apple": 100, "banana": 200}
for key, value in fruits.items():
print(key, value)
# apple 100
# banana 200
strptime()
文字列をdatetime型に変換したいときに利用しました。
基本の形
datetime.strptime(文字列, フォーマット)
例
date_str = "2025-03-28"
dt = datetime.strptime(date_str, "%Y-%m-%d") # 2025-03-28 00:00:00
strftime()
datetime型を文字列に変換したいときに利用しました。
基本の形
datetimeオブジェクト.strftime(フォーマット)
例
date_str = "2025-03-28"
dt = datetime.strptime(date_str, "%Y-%m-%d") # 2025-03-28 00:00:00
lambda(無名関数)
ここの日本語修正
わざわざ関数化して定義するほど処理が長い、複雑ではないが、関数化して利用したいときに使いました。
基本の形
lambda 引数: 戻り値
次は通常の関数で書いた場合と比較する形で
通常の関数
def add(x, y):
return x + y
lambdaでの記述
add = lambda x, y: x + y
json.loads()
JSON文字列を辞書型に変換するメソッドになります。
利用する意図は、pythonだとJSON文字列を扱うことが難しい(if文やfor文が書けない)ので、ptyhonで扱いやすいデータ型に変換するとよい
基本の形
json.loads("JSON文字列")
response_json = '{"name": "田中太郎", "age": 28}'
# JSON文字列 → Python辞書に変換
data = json.loads(response_json)
※JSON文字列内で重複しているキーは辞書型に変換された際に、後勝ちで上書きされます。
辞書型の仕様みたいです。
重複キーを上書きにしたくない場合、
object_pairs_hook
json.loadsのオプション引数です。
JSON形式の文字列を辞書型へ変換する前に、処理をしたい関数を引数に指定することができます。
重複キーをログ出力したいときに利用しました。
基本の形
json.loads("JSON文字列", object_pairs_hook=関数名)
例
import json
def detect_duplicate_keys(pairs):
keys = [key for key, value in pairs]
for key in keys:
if keys.count(key) > 1:
print(f"重複キー検出: {key}")
return dict(pairs)
response_json = '{"name": "田中太郎", "name": "佐藤花子", "age": 28}'
# JSON文字列 → Python辞書に変換(重複キーをログ出力)
data = json.loads(response_json, object_pairs_hook=detect_duplicate_keys)
値の比較
こういった比較を行いたい場合
x > 0 and x < 10
pythonだと数式のようにまとめて書くことができます。
0 < x < 10
おわりに
全部書こうとしたら途中でモチベがなくなってしまいました。。。
全部じゃなくていいから、記事を書いた、という完了主義でいきたい。。。
あとobject_pairs_hookですが、結構内部処理が複雑でした。
AIやデバッグを利用して分析しましたが、python未経験者が足を踏み入れるには敷居が高かったです。
参考資料
値の比較
https://docs.python.org/ja/3/reference/expressions.html#comparisons