如何使用 python-cloudant 进行对象映射

How to do object mapping using python-cloudant

我一直在学习 Python 和一些 CouchDb 教程。获取 couchdb 托管 DbaaS 的最新方法看起来像 Cloudant,因为其他方法已经关闭。

我使用 couchdbkit 在本地开发取得了进展,它在模式包中有一个非常好的 DAO 映射器,而且标准的 couchdb-python 库有一个 "mapping" 模块,它的工作方式很像那。

我在 cloudant 库中找不到此功能 - 示例正在直接操作 JSON - 他们是否遗漏了它,或者是否有经批准的 ODM 库可供使用?

听起来你真正想问的是 "how do I convert a json document to my own Python class"。客户端库(对于 Cloudant)的作用是抽象出样板式 HTTP 和 json 编码内容,并为您提供良好的方法调用和本地(在 Python 中 dict ) json 文档的表示。特别是在 Python 中,鉴于其出色的 requests 库和灵活的 json 处理,大多数人可能甚至不会费心使用特定的客户端库。

dict 转换为您自己制作的 class 应该不难,或者需要一个库。 Python 3.7:

from dataclasses import dataclass

@dataclass
class Employee:
    name: str
    department: str
    code: int

import requests
from employee import Employee

doc = requests.get("https://acc.cloudant.com/employees/bobthebuilder").json()
employee = Employee(
    name=doc.get("name", "n/a")
    department=doc.get("department", "n/a")
    code=doc.get("code", "n/a")
)