本文档主要介绍表格函数的语法规则,包括参数解释、函数示例等。

函数列表

类型 函数 说明
文本到表格 tab_parse_csv 从CSV格式的文本构建表格。
表格到字典 tab_to_dict 从表格中构建字典。

tab_parse_csv

  • 函数格式
    tab_parse_csv(data, sep=',', quote='"', lstrip=True, headers=None, case_insensitive=True)
  • 参数说明
    参数名称 参数类型 是否必填 说明
    data String 文本格式,一般是CSV格式。
    sep String CSV格式的分隔符,默认为逗号。
    quote String 引用符,值中有分隔符时需要用引用符对值进行包裹隔离,默认双引号。
    lstrip Bool 是否将每个关键字左边空格自动去除,默认为True。
    headers String\String List 解析的每个域信息,默认从第一行提取。当第一行是数据时,需要通过这个参数传入,可以是字符串,也可以是字符串列表。
    case_insensitive Bool 匹配时是否大小写不敏感,默认True。
  • 返回结果

    返回映射后的表格数据。

  • 函数示例
    • 示例1:直接构建,源Logstore中需要有表格中字段才能映射。
      原始日志:
      city:  nanjing
      加工规则:
      e_table_map(tab_parse_csv("province,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), "city", "province")
      加工结果:
      city:  nanjing
      province:  jiangsu
    • 示例2:多个字段映射。
      原始日志:
      city:  nanjing
      province:  jiangsu
      加工规则:
      e_table_map(tab_parse_csv("province,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), ["province", "city"], ["pop", "gdp"])
      加工结果:
      city:  nanjing
      gdp:  500
      pop:  800
      province:  jiangsu
    • 示例3:多个字段映射与表格列名不一样。源字段括号内第一个是源字段,第二个是表格字段;目标字段括号内第一个是表格字段,第二个是新字段。
      原始日志:
      city:  nanjing
      province:  jiangsu
      加工规则:
      e_table_map(tab_parse_csv("province,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), [("prov", "province"), "city"], [("pop", "population"), ("gdp", "GDP")])
      加工结果:
      city:  nanjing
      gdp:  500
      pop:  800
      province:  jiangsu

tab_to_dict

  • 函数格式
    tab_to_dict(table, key_field, value_field, key_join=",", value_join=",")
  • 参数说明
    参数名称 参数类型 是否必填 说明
    table 表格 表格数据信息。
    key_field String\String List 用来构建字典关键字的表格列,多个时使用key_join拼接。
    value_field String\String List 用来构建字典值的表格列,多个时使用value_join拼接。
    key_join String 拼接多个列为Key的连接字符串,默认为逗号。
    value_join String 拼接多个列为Value的连接字符串,默认为逗号。
  • 返回结果

    返回映射后的字典数据

  • 函数示例
    • 示例1
      原始日志:
      k1: v1
      city: nj
      加工规则:
      e_dict_map(tab_to_dict(tab_parse_csv("city,pop\nsh,2000\nnj,800"), "city", "pop"), "city", "popu")
      加工结果:
      k1: v1
      city: nj
      popu: 800
    • 示例2
      原始日志:
      k1: v1
      city: js,nj
      加工规则:
      e_dict_map(tab_to_dict(tab_parse_csv("province,city,pop\nsh,sh,2000\njs,nj,800"), ["province", "city"], "pop"), "city", "popu")
      加工结果:
      k1: v1
      city: js,nj
      popu: 800