
# 表格函数
本文主要介绍表格函数的语法规则，包括参数解释、函数示例等。
#### 函数列表
| 函数                                                                                                                                          | 说明              |
|:---|:---|
| [tab_parse_csv] | 从CSV格式的文本中构建表格。 |
| [tab_to_dict]     | 从表格中构建字典。       |
   
 #### tab_parse_csv
从CSV格式的文本中构建表格。
- **函数格式**
  ```
  tab_parse_csv(data, sep=',', quote='"', lstrip=True, headers=None, case_insensitive=True, primary_keys=None)
  ```
  
- **参数说明**
  
  | **参数名称**         | **参数类型**            | **是否必填** | **说明**                                                                                                                                                                                                                   |
  |:---|:---|:---|:---|
  | data             | String              | 否        | 文本格式。通常为CSV格式。                                                                                                                                                                                                           |
  | sep              | String              | 否        | 分隔符。CSV格式下，默认情况为半角逗号（,）。                                                                                                                                                                                                 |
  | quote            | String              | 否        | 引用符。当值中包含分隔符时，使用引用符对值进行包裹。默认情况为半角双引号（"）。                                                                                                                                                                                 |
  | lstrip           | Boolean             | 否        | 每个关键字开头空格是否删除，默认值是True。                                                                                                                                                                                                  |
  | headers          | String或者String List | 否        | 解析的各域信息。默认从首行提取，当首行为数据时，需通过该参数传入。                                                                                                                                                                                        |
  | case_insensitive | Boolean             | 否        | 大小写是否不敏感，默认值是True。                                                                                                                                                                                                       |
  | primary_keys     | String或者String List | 否        | data数据中的主键。 设置后，如果再使用映射富化函数，那么映射富化函数**field** 参数中的字段需与此处保持一致。映射富化函数请参考[映射富化函数](https://support.huaweicloud.com/usermanual-lts/lts_07_0161.html#lts_07_0161)。 |
     
  
- **返回结果**
  返回根据CSV格式文本映射后的表格。
  
- **函数示例**
  1. 直接构建，并映射对应字段的值。
     - 测试数据
       ```
       {
         "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
       province: jiangsu
       gdp: 500
       pop: 800
       ```
       
      
  
  3. 当多个字段映射与表格列名不一样时：源字段括号内第一个是源字段，第二个是表格字段；目标字段括号内第一个是表格字段，第二个是新字段。
     - 测试数据
       ```
       {
         "city": "nanjing",
         "province": "jiangsu"
       }
       ```
       
     
     - 加工规则
       ```
       e_table_map( 
         tab_parse_csv("prov,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), 
         [("province", "prov"), "city"], 
         [("pop", "population"), ("gdp", "GDP")]
       )
       ```
       
     
     - 加工结果
       ```
       city: nanjing
       province: jiangsu
       GDP: 500
       population: 800
       ```
       
      
   
 
 #### tab_to_dict
从表格中构建字典。
- **函数格式**
  ```
  tab_to_dict(table, key_field, value_field, key_join=",", value_join=",")
  ```
  
- **参数说明**
  
  | **参数名称**    | **参数类型**            | **是否必填** | **说明**                              |
  |:---|:---|:---|:---|
  | table       | table               | 是        | 表格信息。                               |
  | key_field   | String或者String List | 是        | 用于构建字典关键字的表格列，多列时需通过**key_join**拼接。 |
  | value_field | String或者String List | 是        | 用于构建字典值的表格列，多列时需通过**value_join**拼接。 |
  | key_join    | String              | 否        | 拼接多列字典关键字的连接字符串，默认情况为半角逗号（,）。       |
  | value_join  | String              | 否        | 拼接多列字典值的连接字符串，默认情况为半角逗号（,）。         |
     
  
- **返回结果**
  返回根据表格映射后的字典。
  
- **函数示例**
  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
       ```
       
      
   
 
