flask에서 mongodb 검색결과 return하기

Mingtorr·2021년 4월 15일
0
post-thumbnail

flask 서버에서 pymongo를 통해 find 연산을 할 경우 결과는 cursor 형태이기 때문에 json형으로 변환하여 반환하려고 할 경우 에러를 반환합니다. 작성했던 코드와 에러는 다음과 같습니다.

@app.route('/', methods=['GET', 'POST'])
def poster():
    result = mydb["polygon"].find().limit(1)
    return jsonify(result)
    
    
TypeError: Object of type Cursor is not JSON serializable

Cursor 형태의 object는 json 형이 아니라는 에러를 출력하게 됩니다. 이를 해결하는 방법을 stackoverflow 탐험을 통해 발견했습니다.

먼저, json_util을 import 합니다.

from bson import json_util

이후 아래와 같이 작성하게 되면 정상적으로 연산결과를 반환할 수 있습니다.


@app.route('/', methods=['GET', 'POST'])
def poster():
    result = list(mydb["polygon"].find({}).limit(1))
    return json.dumps(result, default=json_util.default)

결과는 다음과 같습니다.

profile
츄르 값 벌기 위해 코딩하는 아키텍쳐

0개의 댓글