728x90
반응형
1. id를 제외하고 직렬화를 시키거나 2. id를 직렬화할 수 있게 따로 조치하거나 둘 중 하나의 방법을 사용할 수 있다.
1. id를 제외하고 직렬화 시키기
from flask import Flask, jsonify, request
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = self.client['mydatabase']
collection = self.db['mycollection']
jsonify(list(self.collection.find({}, {'_id': 0})))
2. id를 포함하여 직렬화
str() 함수를 사용하여 _id 값을 문자열로 변환한 뒤 json.loads() 함수 사용하여 json 직렬화 시키기
from pymongo import MongoClient
from bson.json_util import dumps
client = MongoClient('localhost', 27017)
db = client['mydatabase']
collection = db['mycollection']
documents = collection.find()
serialized_data = dumps(documents, default=str)
print(serialized_data)
여기까지 하면 뭔가 이상하다. 오류는 안 나지만 JSON 형식이 아니기 때문이다.
따라서 아래까지 같이 써줘야 한다.
from pymongo import MongoClient
from bson.json_util import dumps
import json
client = MongoClient('localhost', 27017)
db = client['mydatabase']
collection = db['mycollection']
documents = collection.find()
serialized_data = dumps(documents, default=str)
json_data = json.loads(serialized_data)
print(json_data)
728x90
반응형
'공부기록 > 파이썬' 카테고리의 다른 글
[Python, MongoDB] 중복 문서 제외하고 Insert 하는 방법 (0) | 2023.07.14 |
---|---|
[Flask] 이미지 반환하는 라우터(url 호출시 이미지 반환하는 방법) (0) | 2023.07.13 |
[Flask] 직렬화 오류 (0) | 2023.07.03 |
[Flask] Blueprint로 라우터 관리하기 (0) | 2023.07.03 |
[Python + Flask + MongoDB] REST API 구축하기 (0) | 2023.07.03 |