1

我想a = {'key': 602L}在 python 中将字典插入数据库。它不允许我插入它,因为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}"))

注意 key 中缺少的引号。

如何将字典插入表中。?

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 回答