将数据表格内容转字典列表形式输出
回答
收藏

将数据表格内容转字典列表形式输出
10

j
jerry83
2025-08-20 16:56·浏览量:268
j
jerry83
发布于 2025-08-20 16:53更新于 2025-08-20 16:56268浏览

其中第一行为:键名,其他行为键值.为空部分返回None。输出如下格式

[{'键名1':'键值11','键名2':'键值21','键名3':'键值31','键名4':'键值41'},{'键名1':'键值12','键名2':'键值22','键名3':'键值32','键名4':'键值42'},{'键名1':'键值13','键名2':'键值23','键名3':'键值33','键名4'none'}]

目前我这边使用魔法指令写出来对应的命令,想请群里的各位老师看下是否其它更简单的方式,谢谢!

魔法指令代码

from typing import *

try:

   from xbot.app.logging import trace as print

except:

   from xbot import print

def convert_nested_list_to_dict_list(nested_list):

   """

   title: 嵌套列表转字典列表

   description: 将嵌套列表格式的数据转换为字典列表,第一行作为键名,后续行作为对应的值,空值转换为None。

   inputs:

       - nested_list (list): 嵌套列表数据,第一个子列表为表头,eg: "[['键名1', '键名2'], ['键值11', '']]"

   outputs:

       - result (list): 字典列表,每个字典代表一行数据,空值转为None,eg: "[{'键名1': '键值11', '键名2': None}]"

   """

   

   # 检查输入是否为列表

   if not isinstance(nested_list, list):

       raise ValueError("输入必须是嵌套列表")

   

   if len(nested_list) < 2:

       raise ValueError("输入必须包含至少两行数据(表头和数据行)")

   

   # 获取表头

   headers = nested_list[0]

   

   # 创建结果列表

   result = []

   

   # 处理每一行数据

   for i in range(1, len(nested_list)):

       row_data = nested_list[i]

       row_dict = {}

       

       # 为每个单元格创建键值对

       for j in range(len(headers)):

           # 检查索引是否在范围内以及值是否为空

           if j < len(row_data) and row_data[j] not in ('', None):

               row_dict[headers[j]] = row_data[j]

           else:

               row_dict[headers[j]] = None

       

       result.append(row_dict)

   

   return result

尝试过的方案



收藏
全部回答1
最新
发布回答
回答