#javascript #json #python-3.x #mod-wsgi
#javascript #json #python-3.x #мод-wsgi
Вопрос:
я пытаюсь отправить некоторые данные в формате JSON из веб-приложения на Python3.4 / WSGI. Проблема в том, что когда я пытаюсь его использовать, ответ представляет собой строку, которую нельзя использовать в качестве объекта JS. Все значения объектов являются неопределенными.
Вот код сервера:
# -*- coding: utf-8 -*-
#Import Area
import sys
import json
def application(environ, start_response):
status = '200 OK'
response = core(environ)
responseData = response.result()#The response of this is a dictionary {'1':"data1",'2':"data2",'3':"data3",'4':"data4"}
status = "200 OK"
if "type" not in responseData:
Ctype = "text/html"
else:
Ctype = responseData["type"]
if Ctype == "application/json":
results = json.JSONEncoder().encode(responseData["value"])
else:
results = responseData["value"]
response_headers = [('Content-type', Ctype "; charset=utf-8"),
('Content-Length', str(len(results)))]#Creating the Header of the data
start_response(status, response_headers)#Sending the Header of the data
return [results]#Returning the data to the web page.
И это мой код Javascript:
$.ajax({
type:"post",
url: "/",
data:{"idProperty":$(this).attr("idproperty"), "code":"getPropertyData"},
dataType:"json"
}).done(function( response ) {
data= response;
console.log(response);
console.log($.parseJSON(data));
$(".hideall").slideDown('fast');
$("#apto_type").val(data.TYPE);
$("#status_prop").find("option[selected]").removeAttr('selected');
$("#status_prop").find("option[value='" data.STATUS "']").attr("selected","selected");
}).fail(function( XMLHttpRequest, textStatus, errorThrown) {
alert( errorThrown );
});
Комментарии:
1. Не могли бы вы исправить отступ в вашем коде Python? Как указано, это повсюду, и мы не можем определить, есть ли у вас проблема там или в другом месте.
2. Кроме того, поскольку вы установили значение
dataType
to'json'
,response
значение, переданное вашейdone
функции, уже декодируется из JSON в объект javascript.3. Эта часть хороша, но ответ приходит следующим образом: {‘ВАННЫЕ КОМНАТЫ’: 1.0, ‘СОЦИАЛЬНЫЕ’: True, ‘ИМЯ’: ‘La primera’, ‘СПАЛЬНИ’: 2, ‘PROJECT_ID’: 4, ‘ЦЕНА’: 1500000.0, ‘ИДЕНТИФИКАТОР’: 2, ‘ТИП’: ‘Casa’, ‘ПАРКОВКА’: 2, ‘СТАТУС’: 1} Как вы можете видеть, свойства являются строковыми.
4. Да, и что? Чего вы ожидали от них вместо этого?
5. Почему бы вам не обновить свой вопрос, чтобы показать, что вы делаете вместо этого?