删除python输出中的`u`字符

时间:2012-03-20 16:38:23

标签: javascript python google-app-engine angularjs

我创建了一个表单,当我单击提交按钮时,我将3值分配到javascript dict并将其发送到python脚本进行处理但是我的Web浏览器告诉我错误!

来自Json错误:{u'food':90,u'cargo':70,u'fuel':50} SyntaxError

controller.js

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;

        });
    }
};


}

/ process - > 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)

2 个答案:

答案 0 :(得分:8)

在许多情况下,打印Python dict不会生成有效的JSON。你想要json模块:

import json

# ... snip ...

self.response.out.write(json.dumps(info))
# or
json.dump(info, self.response.out)

答案 1 :(得分:3)

问题不在JavaScript中(根据您的原始标题),它位于JSON的输出中。您需要输出格式正确的JSON,如果它看起来像{u'food': 90, u'cargo': 70, u'fuel': 50}self.response.out.write(info)没有。 (jsonlint.com对于验证JSON文本非常方便。)

我不是一个蟒蛇头(实际上,我根本不是一个蟒蛇头),但我想你要替换

self.response.out.write(info)

json.dump(info, self.response)

..或类似(以上假设self.response“... .write() - 支持类文件对象...”),基于this reference