如何从字符串中反序列化数组的数组(嵌套数组)
嵌套数组字符串反序列化方案
你需要解析的目标字符串是经过HTML实体转义的JSON格式嵌套数组,不要使用pickle完成该操作:pickle是Python专属的序列化协议,和这类通用结构化文本格式不兼容,且反序列化未知来源内容时存在任意代码执行的高危安全风险。
实现步骤
- 第一步:处理HTML实体转义,将字符串中表示双引号的
"还原为正常的双引号字符,使用Python标准库html模块的unescape方法即可完成 - 第二步:对还原后的标准JSON格式字符串,使用Python标准库
json模块的loads方法反序列化,JSON原生支持任意层级的嵌套数组、对象结构,可直接得到你需要的Python嵌套列表
代码示例
import html import json # 待解析的原始字符串 raw_content = '[["a", "b"], ["c", "d"]]' # 反转义得到标准JSON字符串 json_content = html.unescape(raw_content) # 反序列化为Python嵌套列表 nested_list = json.loads(json_content) # 验证解析结果 print(nested_list) # 终端输出: [['a', 'b'], ['c', 'd']]
特殊情况说明
如果你拿到的原始字符串没有做HTML转义,本身就是'[["a", "b"], ["c", "d"]]'这类标准JSON格式,可以直接调用json.loads解析,不需要做转义还原操作。
内容的提问来源于stack exchange,提问作者username
相关产品推荐
相关产品推荐

