Создание json в python для механизма приложения

Я немного новичок в python, и мне интересно, какой лучший способ - генерировать json в цикле. Я мог бы просто спеть кучу строк вместе в цикле, но я уверен, что есть лучший способ. Вот еще некоторые особенности. Я использую движок приложения в 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. Благодарим за помощь.

Ответ 1

Мой вопрос: как добавить в словарь динамически? Итак, foreach запишите в мой список записей, добавьте запись в словарь.

Возможно, вы хотите создать список словарей.

records = []
record1 = {"name":"Bob", "email":"[email protected]"}
records.append(record1)    
record2 = {"name":"Bob2", "email":"[email protected]"}
records.append(record2)

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

Ответ 2

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

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

Ответ 3

Несколько шагов здесь.

Первый импорт 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))

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

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