web-dev-qa-db-ja.com

mongoengineオブジェクトをJSONに変換する

フラスコ付きのmongoengineを使用してmongodbからデータをフェッチしようとしました。クエリは完璧に機能します。問題は、クエリ結果をjsonに変換すると、フィールド名のみが表示されることです。

これが私のコードです

view.py

from model import Users
result = Users.objects()
print(dumps(result))

model.py

class Users(DynamicDocument):
    meta = {'collection' : 'users'}
    user_name = StringField()
    phone = StringField()

出力

[["id", "user_name", "phone"], ["id", "user_name", "phone"]]

なぜフィールド名のみを表示するのですか?

8
Kaushik Makwana

クエリは queryset を返します。 .to_json()メソッドを使用して変換します。

そこから必要なものに応じて、json.loads()のようなものを使用してpython辞書を取得することをお勧めします。

例えば:

from model import Users
# This returns <class 'mongoengine.queryset.queryset.QuerySet'>
q_set = Users.objects()
json_data = q_set.to_json()

# You might also find it useful to create python dictionaries
import json
dicts = json.loads(json_data)
12
Joe Walsh