【问题标题】:Python Mongoengine - get the type of a document attributePython Mongoengine - 获取文档属性的类型
【发布时间】:2023-04-02 18:11:01
【问题描述】:

有没有一种简单的方法来获取文档给定属性的类型? 我有属性的名称,我想检查它是否是一个数字。例如,如果输入是字符串“price”,我应该返回 True,因为值是数字。

目前我正在尝试获取给定属性中非空值的第一个文档,但我没有成功,我想知道是否有更直接的方法来获取类型价值。

【问题讨论】:

    标签: python mongoengine


    【解决方案1】:

    我相信您最好的机会是检查文档字段的类型并维护字段类型(例如 StringField)和实际类型(例如 str)之间的映射。

    以下内容应该让您了解如何实现这一目标:

    class TestDocument(Document):
        s = StringField()
        i = IntField()
    
    assert isinstance(TestDocument.s, StringField)
    
    def get_field_type(docCls, attr):
        field = getattr(docCls, attr)
        mapping = {StringField: str, IntField: int}
        return mapping[type(field)]
    
    assert get_field_type(TestDocument, 's') == str
    assert get_field_type(TestDocument, 'i') == int
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2019-09-28
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      相关资源
      最近更新 更多