[英]python unpack a dict from json
我一直在搜索,但是找不到答案,我的猜测是我的问题定义不明确,因此希望获得一些指导
我使用的是turbogears2.2,我是通过$ .post()从客户端视图发送一个JavaScript对象,在服务器上我收到了这个对象(以kw表示):
{'phones[1][surname]': u'sym', 'phones[2][name]': u'', 'phones[1][phone]': u'5498498', 'phones[0][phone]': u'0564', 'phones[1][name]': u'jhon', 'phones[0][surname]': u'cat', 'phones[2][phone]': u'', 'phones[0][name]': u'bob'}
我正在从具有3列的表中发送数据
在我的服务器上,我试图将每一行的数据分开,但是在这里我有点迷失了。 如何将该字典拆分为不同的数据行?
在做
import json
json.loads(str(kw))
失败
{ValueError}: Expecting property name: line 1 column 2 (char 1)
如何将字典/对象转换为嵌套字典(或其他)? 谢谢
感谢Martijn Pieters的帮助,我以为我发布了JSON,但事实并非如此。
您没有发布JSON。 您发布了jQuery为PHP数组功能格式化的application / x-www-form-urlencoded数据。 –马丁·彼得斯(Martijn Pieters)
这是我的JavaScript,我正在尝试HandsOnTable (jQuery数据网格编辑器)
$("#sendToServer").click(function(){
var tableData = $("#myTable").data('handsontable');
$.post(
URL,
{phones:tableData.getData()},
function(data){
console.log(data)
}
)
})
那不是JSON,即使我以为是
无论如何,简单的解决方法:
客户端(JavaScript):
var tableData = $("#myTable").data('handsontable');
var jsonData = JSON.stringify(tableData.getData())
...
$.post(URL,
{phones:jsonData},
...
)
现在在服务器端(Python):
import json
def getPhones(self,**kw):
phones = json.loads(kw['phones'])
...
而且我将数据作为行的字典,很棒
感谢您的指导
要发布JSON ,请不要使用$.post()
。 使用$.ajax()
代替,并显式设置内容类型:
$.ajax({
url: URL,
type: "POST",
data: JSON.stringify({phone: tableData.getData()}),
contentType: 'application/json; charset=utf-8'
dataType: 'json',
success: function(data) {
console.log(response);
},
});
如果您有一个直接处理JSON的控制器(例如TurboGears Web Services提供的控制器),这将特别有用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.