Создание 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)