pythonでのフォーマットや型変換について
pythonのフォーマット関数について
- dict型であれば、以下のようにしてフォーマットできる
- 変数「dict」をfor分などで使いまわす場合は、del関数で削除しないとデータがおかしくなるので注意
# ディクショナリ dict = {"name": "John", "age": 20} # アンパックしてキーワード引数に "My name is {name}. I'm {age} years old.".format(**dict)
*
:複数の引数をタプルとして受け取る
**
:複数のキーワード引数を辞書として受け取る
参考URL
- https://python.civic-apps.com/string-format-function/
- https://note.nkmk.me/python-args-kwargs-usage/
文字列を辞書型に変換する
Redshiftからデータ取得した際は、JSON文字列は文字型(str)になっているので、 上記フォーマットを使いたい為、ディクショナリ型に変換が必要だった
import ast sql = "select * from log.kpi_log WHERE created_at >= %s" cursor = conn.cursor() cursor.itersize = 10000 cursor.execute(sql, (digdag.env.params['target_date'],)) for row in cursor: # 文字列型からディクショナリ型へ変換する json_data = ast.literal_eval(row[3])