Генерация json в python для движка приложений



Я немного новичок в python,и мне интересно, как лучше всего генерировать json в цикле. Я мог бы просто помять связку нитей вместе в петле, но я уверен, что есть лучший способ. Вот еще некоторые подробности. Я использую app engine в python для создания сервиса, который возвращает json в качестве ответа.



В качестве примера предположим, что кто-то запрашивает у сервиса список записей пользователей. После того, как служба запросит записи, ей нужно будет вернуть json для каждой записи. найдено. Может быть, что-то вроде этого:

{records: 
{record: { name:bob, email:[email protected], age:25 } },
{record: { name:steve, email:[email protected], age:30 } },
{record: { name:jimmy, email:[email protected], age:31 } },
}


Извините мой плохо отформатированный json. Спасибо за вашу помощь.

508   3  

3 ответов:

Мой вопрос заключается в том, как я могу добавить к словарь динамически? Так по каждому элементу запись в моем списке записей, добавить запись в словарь.

Возможно, вы хотите создать список словарей.
records = []
record1 = {"name":"Bob", "email":"[email protected]"}
records.append(record1)    
record2 = {"name":"Bob2", "email":"[email protected]"}
records.append(record2)

Затем в App engine используйте приведенный выше код для экспорта records как json.

Создавать свой собственный JSON глупо. Вместо этого используйте json или simplejson.

>>> json.dumps(dict(foo=42))
'{"foo": 42}'

Здесь несколько шагов.

Первый импорт simplejson

from django.utils import simplejson

Затем создайте функцию, которая будет возвращать json с соответствующим заголовком данных.

def write_json(self, data):
  self.response.headers['Content-Type'] = 'application/json'
  self.response.out.write(simplejson.dumps(data))

Затем из вашего обработчика post или get создайте словарь python с нужными данными и передайте его в созданную вами функцию.

 ret = {"records":{
   "record": {"name": "bob", ...}
   ...
 }
 write_json(self, ret)

Comments

    Ничего не найдено.