Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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
Python 解码django应用程序发送的视图中的JSON_Python_Json_Django_Python 3.x - Fatal编程技术网

Python 解码django应用程序发送的视图中的JSON

Python 解码django应用程序发送的视图中的JSON,python,json,django,python-3.x,Python,Json,Django,Python 3.x,我有一个django应用程序,其中一个网页发布了一个JSON对象,如下所示: var content = '{ "EnergylinxTariffMenu" : [' + '{ "FuelPage":"dual" , "DualMenu":"electric",' + ' "SupplierName":"npower", "MeterType": "",' + ' "TestLive":"test"} ]}'; document.mainform.element

我有一个django应用程序,其中一个网页发布了一个JSON对象,如下所示:

var content = '{ "EnergylinxTariffMenu" : [' +
     '{ "FuelPage":"dual" , "DualMenu":"electric",' +
     '  "SupplierName":"npower", "MeterType": "",' +
     '  "TestLive":"test"} ]}';
document.mainform.elements['json_content'].value = JSON.parse(content);
在我看来,我想处理这个问题:

import json
jdata = json.loads(request.POST['json_content'])
但这在以下方面是行不通的:

*** ValueError: Expecting value: line 1 column 2 (char 1)
正确的解码方法是什么


这是django 1.7与Python3.4的结合。在Javascript中调用
JSON.parse不仅毫无意义,而且破坏了测试。字段值中需要的是原始JSON字符串,即
content
的直接值:如果您首先调用JSON.parse,它将转换为JS对象,而该对象的字符串值就是
[object object]
——因此您的错误

实际上,您要做的是在JS中构建一个对象,并使用
JSON将其转储到元素中

var content = { EnergylinxTariffMenu : [
     { "FuelPage":"dual" , "DualMenu":"electric",
       "SupplierName":"npower", "MeterType": "",
       "TestLive":"test"} ]};
document.mainform.elements['json_content'].value = JSON.stringify(content);

为什么首先手工构建JSON字符串,然后将其解析回实际对象?我的客户要求提供一个接受JSON输入的视图,我正在尝试编写一些东西来开发和测试它。好的,非常感谢。我想我必须调用JSON.parse才能将其转换为JSON。我现在明白了,我不必这么做。但现在在我看来,我得到的是一个字符串,而不是列表或dict。你仍然需要在Python中调用
json.loads
。是的,我是,我从中得到的是一个字符串:(Pdb)type(json.loads(request.POST['json_content'])显示更新的JS代码。您现在是否正在对原始字符串调用
stringify
,而不是我推荐的JS对象?