以下是Python代码,在这个Python模块中设置流程参数:all_dicts输出,is_list输出,然后在其他子流程中调用这个Python模块的all_dicts,is_list,运行是空值。而Python代码直接运行是显示布尔值的
import xbot
from xbot import print, sleep
from . import package
from .package import variables as glv
import ast # 导入ast模块用于安全解析字符串
def convert_and_validate():
"""
将自定义审批人字典的字符串转换为列表并验证类型
返回转换后的列表和验证结果
"""
try:
# 1. 获取Excel中的字符串数据
variable_str = glv['Excel_基本参数和循环项值_gvar'].get('自定义审批人字典', '')
print(f"原始字符串数据: {variable_str}")
# 2. 判断原始数据是否为空
if not variable_str:
print("错误: 自定义审批人字典数据为空")
return None, False
# 3. 使用ast.literal_eval安全转换字符串为Python对象
converted_list = ast.literal_eval(variable_str)
print(f"转换后的数据: {converted_list}")
# 4. 验证转换后的对象是否为列表
is_list = isinstance(converted_list, list)
print(f"是否为列表类型: {is_list}")
# 5. 如果是列表,进一步验证列表中的元素是否为字典
if is_list:
all_dicts = all(isinstance(item, dict) for item in converted_list)
print(f"列表中所有元素是否为字典: {all_dicts}")
return converted_list, all_dicts
else:
return converted_list, False
except SyntaxError as e:
print(f"语法错误: 字符串格式不符合列表规范 - {str(e)}")
return None, False
except Exception as e:
print(f"处理出错: {str(e)}")
return None, False
def main(args):
"""主函数,作为模块独立运行时执行"""
# 调用转换和验证函数
result_list, is_valid = convert_and_validate()
# 可以根据需要将结果存储到全局变量供其他流程使用
if is_valid:
glv['converted_approver_list'] = result_list
print("数据转换成功并已存储到全局变量")
else:
print("数据转换失败")
# 当模块独立运行时执行main函数
if __name__ == "__main__":
main(None)