Blender Python如何将数组格式字符串还原为整数数组?
解决Blender Python中字符串形式数组的解析问题
方法1:使用ast.literal_eval()安全解析
这是最稳妥的处理方式,专门用于解析合法的Python字面量字符串,不会执行恶意代码,完美适配标准数组格式的字符串:
import ast # 假设你的字符串属性值为以下内容 str_array = "[12, 15, 75, 60]" # 解析为整数列表 int_array = ast.literal_eval(str_array) # 正常按索引访问元素 print(int_array[0]) # 输出 12 print(int_array[2]) # 输出 75
方法2:手动字符串分割转换
如果你的字符串格式非常规整(无嵌套结构、无多余特殊符号),可以直接手动处理字符串:
str_array = "[12, 15, 75, 60]" # 移除首尾方括号,按逗号分割成单个元素的字符串列表 element_strs = str_array.strip('[]').split(',') # 遍历去除元素前后空格并转换为整数 int_array = [int(s.strip()) for s in element_strs] # 验证访问结果 print(int_array[1]) # 输出 15
优化建议:直接使用Blender原生数组属性
如果后续需要存储数组类数据,建议直接使用Blender提供的原生属性类型,从根源避免字符串解析的麻烦:
import bpy # 为对象注册一个固定长度的整数数组属性 bpy.types.Object.custom_int_array = bpy.props.IntVectorProperty(size=4) # 给当前选中对象赋值 active_obj = bpy.context.active_object active_obj.custom_int_array = (12, 15, 75, 60) # 直接访问数组元素 print(active_obj.custom_int_array[3]) # 输出 60
内容的提问来源于stack exchange,提问作者Pow
相关产品推荐
相关产品推荐

