Javascript 删除python输出中的'u'字符
我创建了一个表单,当我单击submit按钮时,我将3的值分配到一个javascript dict中,并将其发送到一个python脚本进行处理,但是我的web浏览器告诉我一个错误 来自Json错误:{u'food':90,u'cargo':70,u'fuel':50}语法错误 controller.jsJavascript 删除python输出中的'u'字符,javascript,python,google-app-engine,angularjs,Javascript,Python,Google App Engine,Angularjs,我创建了一个表单,当我单击submit按钮时,我将3的值分配到一个javascript dict中,并将其发送到一个python脚本进行处理,但是我的web浏览器告诉我一个错误 来自Json错误:{u'food':90,u'cargo':70,u'fuel':50}语法错误 controller.js function customiseCtrl($xhr){ var self = this; checkPoint(); this.process = function(){ if (c
function customiseCtrl($xhr){
var self = this;
checkPoint();
this.process = function(){
if (checkPoint()){
var newPlayer = {"fuel":value, "food":value2, "cargo":value3 };
$xhr('POST', '/process', newPlayer, function (code, response) {
self.x = response;
});
}
};
}
/进程-->python脚本(我正在尝试读取“info”的信息并将其写入Google应用程序引擎
def post(self):
user = users.get_current_user()
player = Player();
info = json.loads(self.request.body)
player.fuel = info.fuel
self.response.out.write(info)
问题不在JavaScript中(根据您的原始标题),而是在JSON的输出中。您需要输出正确的格式,如果它看起来像
{u'food':90,u'cargo':70,u'fuel':50}
,self.response.out.write(info)
不起作用(用于验证JSON文本)
我不是什么巨蟒头(事实上,我根本不是巨蟒头),但我认为你想取代我
self.response.out.write(info)
与
…或类似内容(以上假设
self.response
是一个“…a.write()
-支持类似文件的对象…”),基于。打印Python dict在许多情况下不会生成有效的JSON。您想要JSON
模块:
import json
# ... snip ...
self.response.out.write(json.dumps(info))
# or
json.dump(info, self.response.out)
Python的
repr
(此处隐式调用)不是为了生成JSON.dump的JSON.dump(info,self.response)的可能副本
如果是像ObjectThank这样的文件,也可能会起作用谢谢,他补充道。这两者之间可能有性能差异吗?对于复杂或大型数据集,是的,使用json.dump
会更有效。我想为了像您一样使用self.response.out
,您需要json.dump
,它会写入像obje这样的文件ct,而不是返回字符串的json.dumps
。@nrabinowitz:实际上,当使用.write()
时,使用dumps()
方法是非常好的。但是当然,使用dumps()是可以的
速度稍微快一点,因为json可以直接写入对象,而无需创建包含所有内容的字符串。但是,对于self.response
可能是stringio或类似的对象,这并不重要。
import json
# ... snip ...
self.response.out.write(json.dumps(info))
# or
json.dump(info, self.response.out)