删除/转义单引号MySQL / JSON

时间:2017-03-13 00:38:24

标签: python 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地图无法再向该点添加标记,因为我的JSON无效。

如果有人能够向我描述问题所在的位置,以及我可以做些什么来补救它,我会非常高兴!提前谢谢。

2 个答案:

答案 0 :(得分:0)

在OP评论之后,这是这个问题的有效答案。

Json确实支持引用,问题不在于Json,而在于Google Map的Javascript。

地址必须'\'一起转发。

您可以使用以下命令在JavaScript中执行此操作:

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

答案 1 :(得分:0)

我最终要做的是,必须替换单引号然后替换MySQL和Python添加到JSON的斜杠,没有任何东西,有效地删除它们!这么简单的答案花了我几个小时才搞清楚。

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

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