Генерация 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. Спасибо за вашу помощь.
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