You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PyYAML读取字符串"\'-alert(1)//"?

解决YAML含特殊转义字符串的读取错误问题

问题场景

YAML文件里有这么个字符串:

"\'-alert(1)//"

用Python代码读取时:

with open(file_path, 'r') as file:
    yaml_data = yaml.safe_load(file) # 试过unsafe_load也不行

直接报错:

found unknown escape character "'"

为啥会报错

YAML的双引号字符串只支持有限的转义字符(比如\"、\\、\n这类),\'根本不是合法的YAML转义序列,解析器识别不了,自然就报错了。

解决办法

办法1:改YAML文件里的字符串

没必要给单引号加转义,双引号包裹的字符串里单引号直接写就行,改成这样:

"'alert(1)//"

或者换成单引号包裹字符串(YAML单引号字符串里,只有内部的单引号需要写成两个连续的),写法如下:

'''alert(1)//'

办法2:读取前先处理文件内容

如果没法改YAML文件,就在读取后先把非法转义替换掉再解析:

with open(file_path, 'r') as file:
    # 把 "\'" 替换成 "'",消除非法转义
    content = file.read().replace(r"\'", "'")
    yaml_data = yaml.safe_load(content)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:15:10