1

a = {'key': 602L}Pythonで辞書をDBに挿入したい。のため、挿入できませんquotes'' in key

これが私のクエリです

self.__db_conn.cursor.execute("INSERT INTO TABLE VALUES ('%s')" % (str(a)))

手動で(引用符なしで)挿入しようとすると、機能します。

self.__db_conn.cursor.execute("INSERT INTO TABLE VALUES ('%s')" % ("{key: 602L}"))

キーに引用符がないことに注意してください。

ディクショナリをテーブルに挿入するにはどうすればよいですか?

4

2 に答える 2

2

JSON にシリアライズする

self.__db_conn.cursor.execute("INSERT INTO TABLE VALUES ('%s')" % json.dumps(your_dict)

JSON からのシリアル化解除

row = db.conn.fetchone(.....)
your_dict = json.loads(row[...])
于 2013-09-25T04:52:33.693 に答える
1

str(a)です"{'key': 602L}"。これを SQL ステートメントに置き換えると、次のようになります。

INSERT INTO TABLE VALUES ('{'key': 602L}')

一重引用符の不一致に注意してください。一重引用符のエスケープを検討してください。

編集

user2799617が述べたように、次のことを試すことができます。

import json
a_json = json.dumps(str(a))
self.__db_conn.cursor.execute("INSERT INTO TABLE VALUES ('%s')" % a_json)

データベースから値を取得したら、 を使用できますjson.loads

于 2013-09-25T04:44:22.583 に答える