Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript simplejson未在app engine服务器上转义单引号_Javascript_Python_Simplejson - Fatal编程技术网

Javascript simplejson未在app engine服务器上转义单引号

Javascript simplejson未在app engine服务器上转义单引号,javascript,python,simplejson,Javascript,Python,Simplejson,我正在尝试生成一个格式正确的json对象,以便在javascript中使用。我尝试过simplejson.dumps(字符串),但它在本地计算机(在python shell中)和服务器(运行google app engine)上的行为不同。例如,在本地,我将获得: >>> s= {u'hello': u"Hi, i'm here"} >>> simplejson.dumps(s) '{"hello": "Hi, i\'m here"}' 看起来都不错。但是当

我正在尝试生成一个格式正确的json对象,以便在javascript中使用。我尝试过simplejson.dumps(字符串),但它在本地计算机(在python shell中)和服务器(运行google app engine)上的行为不同。例如,在本地,我将获得:

>>> s= {u'hello': u"Hi, i'm here"}
>>> simplejson.dumps(s)
'{"hello": "Hi, i\'m here"}'
看起来都不错。但是当我在服务器上运行它时,我得到

{“你好”:“你好,我在这里”}

其中单引号没有转义,这在我的javascript中引发了一个错误


除了执行辅助
字符串。替换(“”,r“\”)
,还有人有什么建议吗?我不知所措,已经花了很多时间试图弄明白……

JSON中的单引号不需要转义,事实上,在您的示例中返回的字符串中没有反斜杠:

>>> print simplejson.dumps(s)
{"hello": "Hi, i'm here"}

因此,我怀疑您的javascript错误是其他原因。

我认为您被
repr
行为与实际输出混淆了

>>> s= {u'hello': u"Hi, i'm here"}
>>> simplejson.dumps(s)
'{"hello": "Hi, i\'m here"}'
>>> print simplejson.dumps(s)
{"hello": "Hi, i'm here"}

当您简单地询问simplejson调用的结果时,Python shell将使用
repr
-打印该结果,这将转义该结果,以便您以后可以剪切并粘贴它。但是,
转储产生的字符串中实际上没有反斜杠

谢谢!我想我现在明白这个问题了。。。我假设simplejson.dumps()将转义单引号,因此当jquery试图在不转义单引号的情况下处理输出时,它认为json字符串在实际结束之前就结束了。ie:jQuery.parseJSON(“{”你好“:“你好,我在这里”});被解释为jQuery.parseJSON({“hello”:“Hi,i”,这给了我一个“missing”错误。