1

问题在于将 json 字符串插入 MySQL 数据库。json.dumps(d)在我的 python 程序中,由于d 是字典,我获得了 json 。插入代码是:

        query = ("INSERT INTO bm_triesJsons VALUES (%s, %s, %s);"%
                 (article_id, revision_number, jsn))
        print query
        cur.execute(query)

看起来问题是引号,引号前没有转义符号。我怎样才能解决这个问题?

4

1 回答 1

4

在进行查询时使用参数化的方法来处理值。驱动程序将处理逃逸:

query = "INSERT INTO bm_triesJsons VALUES (%s, %s, %s);"
cur.execute(query, (article_id, revision_number, jsn))

如果你想直接手动访问 MySQLdb 使用的转义函数,你可以这样做:

c = MySQLdb.connection()
print c.escape_string('{"foo":"bar"}')
# {\"foo\":\"bar\"}
于 2012-07-16T04:33:53.460 回答