簡體   English   中英

刪除/轉義單引號MySQL / JSON

[英]Removing/Escaping single quotes MySQL/JSON

我不太確定該做什么-處理MySQL方面的單引號(在導入或導出時)或在JSON轉儲中處理它們。

我有一個選擇4個DB列並返回它們的函數。

def Import_Sql():
    c, conn = connection()
    dictCursor = conn.cursor(MySQLdb.cursors.DictCursor)
    data = dictCursor.execute("SELECT title, description, lat, lng FROM poi")
    data = dictCursor.fetchall()
    dictCursor.close
    c.close()
    gc.collect()

    return data

從那里我做jsonout = json.dumps(data)返回下面的JSON

[{"lat": "43.8934276", "lng": "-103.3690243", "description": "Super Amazing Place", "title": "Swimming"}]

但是,如果有人添加了一個在文本中包含單引號的數據庫條目(例如,如果上面說的是“這真是太棒了”),那么所有這些工作就沒有缺陷了,我的Google Map不再能夠添加標記到這一點,因為我的JSON無效。

如果有人可以向我描述問題的根源以及我可以采取的補救措施,我將非常高興! 提前致謝。

根據操作人員的評論,這是此問題的有效答案。

Json確實支持引號,問題不在於Json,而在於Google Map的Javascript。

地址必須已'\\'轉義\\'

您可以使用以下方法在JavaScript中進行操作:

str = "It's super amazing";
str = str.replace(/'/g, "\\'");
document.write(str); // = It\'s super amazing

我最終要做的是,必須替換單引號,然后替換MySQL和Python在JSON中添加的斜杠,什么也沒有,有效地將它們刪除了! 這種簡單的答案花了我幾個小時才能弄清楚。

jsonout = json.dumps(MySQL_Dict)
jsonout = jsonout.replace("'", "")
jsonout = jsonout.replace("\\", "")

return render_template("all_places.html", jsonout = jsonout)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM