You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python将含转义字符的字符串转换为列表

解决Python中HTML转义字符串转列表的问题

嘿,我来帮你搞定这个问题!你遇到的字符串是经过HTML实体转义的JSON格式,手动用字符串切片处理很容易因为嵌套引号、结构变化出问题,用专门的工具库处理会更可靠。

具体解决步骤

你的原始字符串是这样的:

sample_str = '["sample text1", "\'sample text2\'", "sample text3"]'

我们需要分两步处理:

  1. 把HTML转义的"还原成普通双引号
  2. 将处理后的合法字符串解析成Python列表

方法一:用html+json模块(推荐)

这是最通用的方案,能正确处理各种转义场景:

import html
import json

# 1. 解码HTML实体,替换所有"为双引号
unescaped_str = html.unescape(sample_str)
# 此时unescaped_str的值为:'["sample text1", "'sample text2'", "sample text3"]'

# 2. 用json模块解析成列表
sample_str_to_list = json.loads(unescaped_str)

# 验证结果
print(type(sample_str_to_list))  # 输出 <class 'list'>
print(sample_str_to_list)
# 输出: ['sample text1', "'sample text2'", 'sample text3']

方法二:用html+ast模块

如果处理后的字符串是合法的Python字面量,也可以用ast.literal_eval来解析,它比eval更安全,不会执行恶意代码:

import html
import ast

unescaped_str = html.unescape(sample_str)
sample_str_to_list = ast.literal_eval(unescaped_str)

# 同样能得到正确的列表结果
print(sample_str_to_list)

为什么不推荐字符串切片?

手动切片的方式完全依赖字符串的固定结构,一旦字符串里的元素数量、内容长度发生变化(比如新增元素、文本里出现特殊字符),切片就会失效。而用专门的解析工具能自适应处理各种合法的格式情况,稳定性和可读性都更强。

内容的提问来源于stack exchange,提问作者Crusader

火山引擎 最新活动