2022年 11月 8日

python去除字符串中的转义字符

我们在用python处理字符串的时候,难免会遇到被转义的情况。比如我们定义一个字典类型的变量:
data = {“datas”: ‘[{“name”: “菜鸟”}]’}
我们使用json的dumps方法将这个字典转为字符串,
res = json.dumps(data, ensure_ascii=False)
再打印这个res的时候会发现输出的字符串里包含有转义字符,即反斜杠\:
{“datas”: “[{\“name\”: \“菜鸟\”}]”}
这里有两种方法可以去除反斜杠,首先第一种比较简单暴力,直接:
data = res.replace(“\\”, “”)即可,但是各位在使用中要注意,处理之后的数据是否还能正常使用,因为当处理的数据量很大时,无法确定在其他地方反斜杠是否还有用处,所以这种方法适合数据量小,且没有特殊情况的问题使用。
第二种方法使用eval函数处理,即:
data = eval(res)
打印这个data,会发现{‘datas’: ‘[{“name”: “菜鸟”}]’}反斜杠没有了,原理是eval首先将res这个变量里的字符串引号剥去,然后得到的是一个字典,显然这个是不可以进行计算的,那么它就开始查找这个字典是否是一个变量,然后它一查找,找到了data,于是输出了data里的原始内容。
import json

data = {“datas”: ‘[{“name”: “菜鸟”}]’}
res = json.dumps(data, ensure_ascii=False)
print(res)
data = eval(res)
print(data)

希望对你有所帮助!