#python #mongodb #flask-mongoengine
#python #mongodb #flask-mongoengine
Вопрос:
Я использую mongoengine для своего приложения python flask и использую пользовательский ORM для проекта.
Я столкнулся с проблемой в GET API, где я извлекаю список данных активов, которые хранятся в моей базе данных, и когда я извлекаю данные, он показывает мне такие данные, как: code,
{
"message": "done",
"result": {
"asset": [
{
"_id": {
"$oid": "5fa4fb9ea33244b15c6605bc"
},
"asset_download_link_android": "https://link",
"asset_download_link_ios": "https://link",
"asset_download_link_mac": "https://link",
"asset_download_link_windows": "https://link,
"asset_id": 1,
"asset_name": "car_exhibition_1",
"asset_size": "100MB",
"asset_thumbnail_url": "https://link",
"asset_version": "1.0.0",
"created_at": {
"$date": 1604647838316
},
"email": "xyz@gmail.com"
},
]
},
"status": 200
}
Теперь,
"_id": {
"$oid": "5fa4fb9ea33244b15c6605bc"
}
который был создан моим ORM, и из-за этого знака «$» я не могу продолжить, потому что мой объект может назначить переменную со специальным символом в начале. Итак, пожалуйста, кто-нибудь может мне помочь, как я могу получить ответ без поля $ oid в ответе.
Код, который я использую для получения ответа,
assets = collection_name.objects.all()
return_val = jsonify({"message" : "done" , "status" : status_code, "result" :
{"asset" : assets}})
return return_val, status_code
Комментарии:
1. Вам нужно
_id
это в вашем интерфейсе? Или, возможно; вместо того, чтобы исправлять$oid
имя (или удалять идентификатор сdel asset['_id']
помощью цикла), сделайте так, чтобы ваш интерфейс работал правильно$oid
. Какой код вырывается на$
?2. Мне нужно работать с unity, как во внешнем интерфейсе, но они не могут принять «$ oid», как в переменной, потому что специальный символ не может позволить нам двигаться вперед. Итак, нужно удалить в ответе
Ответ №1:
Вы можете выполнить итерацию по внутреннему assets
списку и удалить все ключи, содержащие ключи $
под ними:
import json
import pprint
foo = json.loads("""
{
"message": "done",
"result": {
"asset": [
{
"_id": {
"$oid": "5fa4fb9ea33244b15c6605bc"
},
"asset_download_link_android": "https://link",
"asset_download_link_ios": "https://link",
"asset_download_link_mac": "https://link",
"asset_download_link_windows": "https://link",
"asset_id": 1,
"asset_name": "car_exhibition_1",
"asset_size": "100MB",
"asset_thumbnail_url": "https://link",
"asset_version": "1.0.0",
"created_at": {
"$date": 1604647838316
},
"email": "xyz@gmail.com"
}
]
},
"status": 200
}
""")
for asset in foo['result']['asset']:
del asset['_id']
del asset['created_at']
pprint.pprint(foo)
Результат:
{'message': 'done',
'result': {'asset': [{'asset_download_link_android': 'https://link',
'asset_download_link_ios': 'https://link',
'asset_download_link_mac': 'https://link',
'asset_download_link_windows': 'https://link',
'asset_id': 1,
'asset_name': 'car_exhibition_1',
'asset_size': '100MB',
'asset_thumbnail_url': 'https://link',
'asset_version': '1.0.0',
'email': 'xyz@gmail.com'}]},
'status': 200}