web-technical-blog

web開発に関する技術メモ

pythonでのフォーマットや型変換について

pythonのフォーマット関数について

  • dict型であれば、以下のようにしてフォーマットできる
  • 変数「dict」をfor分などで使いまわす場合は、del関数で削除しないとデータがおかしくなるので注意
# ディクショナリ
dict = {"name": "John", "age": 20}
# アンパックしてキーワード引数に
"My name is {name}. I'm {age} years old.".format(**dict)

*:複数の引数をタプルとして受け取る
**:複数のキーワード引数を辞書として受け取る

参考URL


文字列を辞書型に変換する

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])

参考URL