Неправильная интерпретация данных JSON из Python3.3 WSGI

#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. Почему бы вам не обновить свой вопрос, чтобы показать, что вы делаете вместо этого?