Nano Hash - криптовалюты, майнинг, программирование

Pymongo и Django запрашивают неверный JSON

Я пытаюсь создать результат JSON с помощью Pymongo, Mongodb и Django. Я создал представление Django, содержащее запрос pymongo, и хочу вернуть результаты в формате json. Однако полученные результаты недействительны json (согласно jsonlint)

Вот мой вид джанго.

from django.http import HttpResponse
import pymongo
from datetime import datetime, timedelta
import json
from bson import json_util

#setup database connection
try:
    conn = pymongo.Connection()
    db = conn.mydatabase
except:
    print('Error: Unable to connect to database.')
    conn = None

def querypeople(request):
    result = db.people.find({}).sort('name')
    json_docs = []
    for doc in result:
        json_doc = json.dumps(doc, default=json_util.default, sort_keys=True, indent=4)
        json_docs.append(json_doc)
    return HttpResponse(json_docs, content_type='application/json')

Который производит этот вывод. (Обратите внимание, что запятые, отсутствующие между каждым документом, и [ ] должны охватывать весь результат. Это делает его недействительным JSON.) Что я делаю неправильно?

"_id": { "$oid": "50c596ab2b9afbbc85ed202a" }, "date_added": { "$date": 1355126443473 }, "name": "Эл Лэндон" }{ "_id": { "$oid": "50c5b9d92b9afbc3f1e7c90c " }, "company": "Corrs", "date_added": { "$date": 1355135449179 }, "name": "Эндрю Ламсден", "title": "Партнер"


  • это как-то два шага сериализации. вы используете json.dumps для каждого элемента списка. Правильно ли я предполагаю, что желаемый json должен выглядеть так: {obj: [{_id: {$oid: 12323}, date_added: {$date: 1355126443473}, name: Al Landon}, {_id: {$oid: 50c5b9d92b9afbc3f1e7c90c}, компания: Corrs, date_added: {$date: 1355135449179}, name: Andrew Lumsden, title: A Partner}]} 09.01.2013
  • это правильно, так должен выглядеть мой желаемый json 09.01.2013

Ответы:


1

Насколько я понял, вы возвращаете список ответов, а не строку json. Пытаться:

json_docs = json.dumps(list(result), default=json_util.default, sort_keys=True, indent=4)
09.01.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..