我不太确定我需要做什么 - 处理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无效。
如果有人能够向我描述问题所在的位置,以及我可以做些什么来补救它,我会非常高兴!提前谢谢。
答案 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)