gpt4 book ai didi

python - 仅使用 python-eve API 向 MongoDB 请求 `_items`

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:33 30 4
gpt4 key购买 nike

我正在使用 python-eve -API(简称eve)访问MongoDB。插入一些示例数据后,我正在使用 Chrome's Postman测试 API。

自从 eve 提供了除了请求的数据之外的附加信息和 HATEOAS directivesdocs 中所述我只是想知道如何仅请求 _items 字典(如果用 Python 语言来说,则将其称为 dictionary ;如果用 Python 语言来说,则将其称为 object ) JSON 或 JavaScript)。

因此,示例请求 http://127.0.0.1:5000/packagings/ 给出了如下所示的响应,我只对 _items 中包含的数据感兴趣>-字典/-对象。

当然,我可以在接收并存储完整响应后提取所需的数据。但是,有没有办法只请求我感兴趣的数据,以减少额外的数据提取。收到数据后如何处理数据?

{
"_links": {
"self": {
"href": "packagings",
"title": "packagings"
},
"parent": {
"href": "/",
"title": "home"
}
},
"_meta": {
"max_results": 25,
"page": 1,
"total": 1
},
"_items": [
{
"diameter_dk": 0.0144,
"_created": "Tue, 17 Nov 2015 21:15:37 GMT",
"factor_fa": 2.1,
"_id": "564b98f955c40f29843128df",
"free_volume": 0.89,
"title": "raschigring10x10x0.5",
"_updated": "Tue, 17 Nov 2015 21:15:37 GMT",
"_links": {
"self": {
"href": "packagings/564b98f955c40f29843128df",
"title": "Packaging"
}
},
"specific_weight": 920,
"title_hr": "Raschig-Ring 10x10x0.5",
"specific_surface": 500,
"specific_number": 770000,
"_etag": "bcb4080b61028405babcd960196d27208c3eabd3"
}
]
}

最佳答案

您可以通过在配置设置中设置 HATEOAS = False 来禁用 HATEOAS。这应该会大大减少负载,使其更适合您的用例。

编辑:您还可以选择通过将回调函数 Hook 到 on_fetched_resource 事件来转换响应负载。

from eve import Eve

def on_fetched_resource(resource, response):
del(response['_links'])
del(response['_meta'])

# would result in an empty JSON document
# del(response['_items'])

app = Eve()
app.on_fetched_resource += on_fetched_resource

if __name__ == '__main__':
app.run()

由于响应是一个字典(毕竟是 JSON),您仍然需要为文档数组提供一个键。

关于python - 仅使用 python-eve API 向 MongoDB 请求 `_items`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33767597/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com