【问题标题】:send json object through javascript to python web service通过 javascript 将 json 对象发送到 python web 服务
【发布时间】:2013-12-03 13:27:12
【问题描述】:

我正在尝试将 json 对象从 javascript 发送到 python webservice。但服务始终将其视为字符串。以下是客户端和服务器端代码:

客户端:

$("#button").click(function () {
        $.ajax({
            type: "POST",
            url: "http://localhost:8079/add",
            data: JSON.stringify([{'account_template': {
                    'external_id': 'l10n_harec.a' + $("input[id$=Text2]").val(),
                    'name': $("input[id$=Text1]").val(),
                    'code': $("input[id$=Text2]").val(),
                    'type': $("select[id$=accountType]").val(),
                    'reconcile': $("input[id$=Checkbox1]").val()
                }, 'account_account': {
                    'code': $("input[id$=Text2]").val(),
                    'name': $("input[id$=Text1]").val(),
                    'type': $("select[id$=accountType]").val(),
                    'active': 'True',
                    'reconcile': $("input[id$=Checkbox1]").val()
                }
            }]),
            dataType: "json",
        });
    });

服务器端:

class add:        
    def POST(self):
        i = web.input()
        print i

结果我可以在服务器端看到以下内容:

谁能告诉我这里出了什么问题?

【问题讨论】:

  • 尝试打印这个 simplejson.loads(request.body)。

标签: javascript python json web-services jquery


【解决方案1】:

我不知道您使用的是什么模块,但我希望它始终作为字符串传递。如果您需要字典,可以使用 json.loads 来执行此操作:

import json
i = json.loads(web.data())
print type(i)

【讨论】:

  • 哦抱歉哈哈,我忘记调用函数了。已更新。
  • json.loads 应该负责反序列化任何有效的 json,而不仅仅是对象 -> 字典。
  • 我收到 TypeError: expected string or buffer when using the above method
  • web.data() 为我做了:s = web.data() d = json.loads(s) print d
猜你喜欢
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
相关资源
最近更新 更多