2012-07-16 116 views
0

問題是將json字符串插入MySQL數據庫。 在我的python程序中,我獲得了json,作爲json.dumps(d)的結果,其中d是一個字典。插入代碼是:將json插入到mysql中。 json字符串從json.dumps獲取

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

它看起來像問題是引號,引號前面沒有轉義符號。 我該如何解決這個問題?

回答

2

執行查詢時,使用參數化的方法處理值。該驅動程序將處理轉義:

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\"}