やりたいこと
Pythonを使って、JSONデータをPostgreSQLにINSERTしたい
実行環境
- PostgreSQL9.6.6
- Python3.6
- psycopg2.7.4
発生したエラー
psycopg2.ProgrammingError: can't adapt type 'dict'
解決法
JSONデータが格納されている変数に対して、json.dumps()
を使ってエンコードする。
import json thedictionary = {'price money': '$1', 'name': 'Google', 'color': '', 'imgurl': 'http://www.google.com/images/nav_logo225.png', 'charateristics': 'No Description', 'store': 'google'} cur.execute("INSERT INTO product(store_id, url, price, charecteristics, color, dimensions) VALUES (%s, %s, %s, %s, %s, %s)", (1, 'http://www.google.com', '$20', json.dumps(thedictionary), 'red', '8.5x11'))