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

#!/usr/bin/env python

@desc :

coding = "utf-8"

author = "bytedance"

python 复制代码
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 分钟前
数据结构:栈堆
java·开发语言·数据结构
淮北49422 分钟前
pip虚拟环境包的问题
开发语言·python·pip
dear_bi_MyOnly24 分钟前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
常年游走在bug的边缘26 分钟前
掌握JavaScript作用域:从函数作用域到块级作用域的演进与实践
开发语言·前端·javascript
jiaguangqingpanda31 分钟前
Day36-20260204
java·开发语言
ctyshr36 分钟前
C++编译期数学计算
开发语言·c++·算法
打码的猿40 分钟前
Qt对话框不锁死主程序的方法
开发语言·qt
努力写代码的熊大1 小时前
c++异常和智能指针
java·开发语言·c++
m0_706653231 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
Yvonne爱编码1 小时前
JAVA数据结构 DAY5-LinkedList
java·开发语言·python