json.dumps
を使用するだけです docs
に記載されているjsonデータ(文字列にシリアル化)の場合 psycopg2
すべての作業とパラメータバインディングを実行します:
cattle_id = 'cattle_A'
step_count_dict = json.dumps({1: 22, 4: 12})
speed_dict = json.dumps({2: 24, 6: 98})
cur = con.cursor()
query = "INSERT INTO global_records(cattle_id, step_count, speed) VALUES (%s, %s, %s)"
cur.execute(query, (cattle_id, step_count_dict, speed_dict))
con.commit()
cur.execute('Select * from global_records')
print(cur.fetchall())
アウト:
[('cattle_A', {'1': 22, '4': 12}, {'2': 24, '6': 98})]