2024.1.22 parse_rule.用户画像es数据使用rule规则读取

#!/usr/bin/env python
# @desc :
__coding__ = "utf-8"
__author__ = "bytedance"
 


class EsMeta:
    def __init__(self, inType, esNodes, esIndex, esType, selectFields):
        self.inType = inType
        self.esNodes = esNodes
        self.esIndex = esIndex
        self.esType = esType
        self.selectFields = selectFields

    # 返回值类型必须是string
    def __str__(self):
        return f"inType={self.inType},esNodes={self.esNodes},esIndex={self.esIndex}," \
               f"esType={self.esType},selectFields={self.selectFields}"

    @classmethod
    def parse_rule(cls, rule: str):
        keyvalue_list = rule.split("##")

        return_dict = {}

        for keyvalue in keyvalue_list:
            info_list = keyvalue.split("=")
            return_dict[info_list[0]] = info_list[1]

        return EsMeta(**return_dict)

# 测试代码
# 使用上面定义的规则,就能在下面一大串有规则的表格数据中提取出读取es上数据所需要的内容
# if __name__ == '__main__':
#     rule = "inType=Elasticsearch##esNodes=192.168.88.166:9200##esIndex=policy_client##esType=_doc##selectFields=user_id,sex"
#
#     obj = EsMeta.parse_rule(rule)
#     print(obj)
 

 

相关推荐

  1. 2024.1.22 parse_rule.用户画像es数据使用rule规则读取

    2024-01-31 11:46:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-31 11:46:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-31 11:46:03       97 阅读
  3. 在Django里面运行非项目文件

    2024-01-31 11:46:03       78 阅读
  4. Python语言-面向对象

    2024-01-31 11:46:03       88 阅读

热门阅读

  1. wrappedComponentRef和ref的区别

    2024-01-31 11:46:03       51 阅读
  2. 通过MediaStore查询image,video,arm,pdf等等文件数据

    2024-01-31 11:46:03       48 阅读
  3. Spring-yml

    2024-01-31 11:46:03       48 阅读
  4. C# 策略模式(Strategy)

    2024-01-31 11:46:03       45 阅读
  5. Threejs API——`OrbitControls`相机控件

    2024-01-31 11:46:03       53 阅读
  6. Nginx中日志模块的应用和配置!

    2024-01-31 11:46:03       53 阅读