Python3中如何将含多类型嵌套元素的字符串转换为可索引列表
Python3 解析嵌套列表格式字符串的简便方法
你手里的字符串本身就是符合Python字面量规范的嵌套列表结构,不需要手写复杂的拆分、类型转换逻辑,直接用Python标准库ast模块的literal_eval方法就能一步完成解析,还能完整保留嵌套结构、自动匹配元素类型。
具体实现代码
# 导入标准库ast,不需要额外安装第三方包 import ast # 原始字符串 sign_str = "[[1,2,3],4,'message',2,[4,5,6],7]" # 直接解析为Python原生列表 sign = ast.literal_eval(sign_str)
解析完成后就可以按照你预期的方式访问元素:
sign[0] # 对应值 [1,2,3] sign[1] # 对应值 4 sign[2] # 对应值 'message' sign[3] # 对应值 2 sign[4] # 对应值 [4,5,6] sign[4][0] # 对应值 4 sign[5] # 对应值 7
注意事项
- 不要直接使用内置的
eval()函数做解析:eval会执行字符串内的任意可执行代码,如果字符串来源不可靠,会存在严重的安全隐患。 ast.literal_eval只会解析Python原生的基础字面量(列表、字典、元组、数字、字符串、布尔值、None等),不会执行任意代码,解析这类结构化字符串安全性有保障,只要字符串格式符合Python字面量书写规范,哪怕嵌套层级更深也能正常解析。
内容的提问来源于stack exchange,提问作者Cesar11031
相关产品推荐
相关产品推荐

