2016-03-27 2 views
0

Я работаю над проектом движка приложения в Python, отправляя данные с html-страницы (используя jQuery) на Python.Извлечь данные из jquery-json в python

Я использую этот плагин JQuery для сериализации HTML таблицы в яваскрипте объекты: https://github.com/lightswitch05/table-to-json

function addFood() { 
    var table = $('#planTable').tableToJSON(); 
    var info = { 
     "user": "{{user}}", 
     "plan": JSON.stringify(table) 
    }; 
    $.ajax({ 
     type: "POST", 
     url: "/addplan", 
     dataType: "json", 
     data: JSON.stringify(info) 
    }) 
    .done(function(msg) { 
     alert(msg.text); 
    }); 
} 

В Python у меня есть этот код:

class AddPlanToDB(webapp2.RequestHandler): 
    def post(self): 
     info = json.loads(self.request.body) #retrive data from jQuery 
     print info 
     user = info['user'] 
     template_values = { 
      'text': 'All done!' 
     } 
     self.response.out.write(json.dumps(template_values)) 

Печати информации дать мне этот вывод:

{u'plan': u'[{"Food":"Cheese, fontina","Grams":"100g","Pro":"25.6","Carbo":"1.6","Fat":"31.1","":""},{"Food":"Butter, salted","Grams":"50g","Pro":"0.4","Carbo":"0.0","Fat":"40.6","":""},{"Food":"Corn bran, crude","Grams":"200g","Pro":"16.7","Carbo":"171.3","Fat":"1.8","":""},{"Food":"","Grams":"Total:","Pro":"42.7","Carbo":"172.9","Fat":"73.5"}]', u'user': u'[email protected]'} 

Table structure that give me data

info ['user'] вернет правильную информацию о пользователе. Но я не могу получить данные о

еды:

Грамм:

Pro:

Carbo:

жира:

Может ли кто-нибудь сказать мне, как получить эти данные на Python?

Заранее благодарим за мой маленький английский.

ответ

1

Чтобы получить информацию о плане диеты сделать что-то вроде этого

for item in json.loads(info['plan']): 
    print item['Food'] 
    print item['Grams'] 
    print item['Pro'] 
    #etc 

Вот копия и вставить пример

import json 
data = {u'plan': u'[{"Food":"Cheese, fontina","Grams":"100g","Pro":"25.6","Carbo":"1.6","Fat":"31.1","":""},{"Food":"Butter, salted","Grams":"50g","Pro":"0.4","Carbo":"0.0","Fat":"40.6","":""},{"Food":"Corn bran, crude","Grams":"200g","Pro":"16.7","Carbo":"171.3","Fat":"1.8","":""},{"Food":"","Grams":"Total:","Pro":"42.7","Carbo":"172.9","Fat":"73.5"}]', u'user': u'[email protected]'} 
for item in json.loads(data['plan']): 
    print item['Food'] 
+0

Не работает: Файл «main.py», в пункте после печати [ 'Food']. TypeError: строковые индексы должны быть целыми числами – mosca90

+0

@AndreaM, я допустил ошибку в начальном примере. Попробуйте с помощью 'json.loads' – John

+0

Да! В заключение! Ты получил это! Нам нужно называть json.loads 2 раза, я настолько тупой. На самом деле спасибо @ Джон! – mosca90

Смежные вопросы