フラスコ付きの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"]]
なぜフィールド名のみを表示するのですか?
クエリは 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)