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)

相关推荐
执笔画流年呀3 分钟前
计算机是如何⼯作的
linux·开发语言·python
weixin_520649874 分钟前
C#闭包知识点详解
开发语言·c#
m0_716430074 分钟前
HTML函数能否用触控板高效编写_触控硬件操作体验评估【汇总】
jvm·数据库·python
2401_835956814 分钟前
Golang怎么安全关闭channel_Golang channel关闭教程【通俗】
jvm·数据库·python
东北甜妹8 分钟前
Redis Cluster 操作命令
java·开发语言
Absurd5879 分钟前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
m0_6742946410 分钟前
宝塔面板如何设置网站强制HTTPS_配置Nginx自动跳转规则
jvm·数据库·python
qq_4240985610 分钟前
HTML函数开发用可拆卸键盘设计实用吗_模块化硬件体验评估【指南】
jvm·数据库·python
Wyz2012102410 分钟前
CSS如何实现Less颜色函数自动计算渐变_使用lighten与darken实现视觉反馈
jvm·数据库·python
花间相见10 分钟前
【大模型微调与部署01】—— ms-swift-3.12入门:安装、快速上手
开发语言·ios·swift