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)

相关推荐
LorryJovens5 分钟前
【LAAP科研】CEN因果等价网络理论---从双缝干涉到因果等价
开发语言·php
2301_800074218 分钟前
map,list简单方法
windows·python·list
Brilliantwxx1 小时前
【Linux】 进程(10) 进程控制深度解析:创建、终止与等待
linux·运维·服务器·c语言·开发语言·网络
DeepVisionary1 小时前
30B 参数打平 1 万亿参数:Meta 开源 Muse Glimmer,跑分 35 对 36
python·自动化
吴声子夜歌1 小时前
Guava——基本工具(二)
windows·python·guava
卢锡荣2 小时前
国产PD3.1全集成Type-C管控芯片LDR6020P
c语言·开发语言
Freak嵌入式2 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
Casual2 小时前
【网络基础进阶】:看懂子网划分与 VLAN
开发语言·网络·php
阿里云大数据AI技术2 小时前
EMR Serverless Spark多模态 Daft 算子市场免费公测 | 10分钟极速实战(附视频教程)
人工智能·spark
用户8356290780512 小时前
使用 Python 管理 PDF 属性和元数据
后端·python